Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Por que aceita repetições

Olá, por que não posso colocar no "for" quantidade.length ao invés de ingredientes.length?

OBS: Colocando quantidade.length o código funciona mas os ingredientes podem ser repetidos...não entendi o porquê.

Valeu pessoal!

<script>
   var ingredientes = [];

   var quantidade = parseInt(prompt("Coloque a quantidade de ingredientes."));

   var contador=1;
   while (contador <=quantidade){
       var elemento = prompt("Coloque o ingrediente número "+contador);

   var existe=false;

   for (posicao=0;posicao<quantidade.length;posicao++){
      if (ingredientes[posicao]==elemento){
      existe=true;
      break;

      }
    }
      if(existe==false){
          ingredientes.push(elemento);   
          contador++;
      }   



}


    document.write(ingredientes);





</script>
2 respostas

Olá José.

Sou novo aqui, então posso estar explicando de uma forma errada. Mas, pelo que eu entendi:

A extensão ".length" é a propriedade de um array. Como a variável "quantidade" não é um array, eu acho que o "quantidade.length" não significa nada para o programa.

Agora, também não entendi o pq de não acusar algum erro e rodar o programa normalmente.

Abraço!

solução!

Oi José a propriedade .length especifíca o número de elementos em um array.No nosso algoritmo só temos um array o de ingredientes, a variável quantidade serve apenas para indicar a quantidade de ingredientes que vamos adicionar. Se você colocar quantidade.length o valor será undefined por isso o for que tem o if que contém a lógica para não permitir a adição de elementos duplicados não roda, porque a condiçaõ dele não é satisfeita. E logo abaixo como a variável existe sempre é false (os elementos) são adicionados. A propriedade .lenght no array de ingredientes serve para percorrer o array até a ultima posição ou até o tamanho atual dele.

Espero ter ajudado e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software