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

Não existe ingrediente repetido aqui!

Esse código só acrescenta um novo ingrediente no array se o item a ser adicionado for diferente do que já está na lista.

Minha dúvida nesse código é:

Por que não posso botar esse trecho abaixo dentro do for ou criar um else para o if que está dentro do for?

** if(ingrediente !== ingredientes[i]){ ingredientes.push(ingrediente); contador++; }**

Receitas do Yan

2 respostas
solução!

Olá, Lucas, tudo bem?

Você não pode fazer nenhuma dessas duas coisas pelo seguinte motivo: no bloco for, estamos percorrendo o array ingredientes, e a verificação if (ingredientes[i] == ingrediente) é realizada para cada um dos itens do array. Se houverem 3 itens no array, por exemplo, essa verificação poderá ser realizada até 3 vezes.

Se houvesse um bloco else com o comando ingredientes.push(ingrediente); para cada uma dessas 3 verificações, o novo ingrediente poderá ser adicionado diversas vezes.

Em vez disso, queremos garantir que o comando ingredientes.push(ingrediente); seja executado uma única vez (ou nenhuma) após percorrermos o array, ou seja, fora da estrutura for.

Espero ter ajudado! Abraços e bons estudos :)

Entendi, obrigado!