2
respostas

[Sugestão] Como funciona o forEach (Explicando)

Aqui no caso eu já sanei minha dúvida mas gostaria de compartilhar aqui pra ajudar quem também ficou confuso, no final tem resumo e explicação

btn.forEach(function(contexto){
     contexto.classList.remove('active');
   });

na função anônima no video foi colocado 'contexto' o que provavelmente foi oque te deixou confuso(meu caso) mas na verdade esse contexto da função anônima não é o mesmo da função de mudar contexto

function alterContext(contexto1){
    btn.forEach(function(contexto2){
        contexto2.classList.remove('active');
    });

acima um exemplo

o 'contexto' de alternar o contexto se chama 'contexto1' já o contexto da função anônima se chama 'contexto2'

---------EXPLICANDO------- o forEach pegou cada botão da lista 'btn' e usou eles no parametro da função anônima:

btn.forEach(function(btnItem){ btnItem.classList.remove('active'); });

seria como:

function( Item1){
    item1.classlist.remove('active')      //remove a class active//
}
function( Item2){
    item2.classlist.remove('active')      //remove a class active//
}
function( Item3){
    item3.classlist.remove('active')       //remove a class active//
}

---------RESUMO--------- O paramêtro da função anônima que vem logo após o forEach é um item da lista botoes

2 respostas

Oi Henry, tudo bem?

Agradeço por compartilhar sua explicação, com certeza será útil para muitas pessoas que estão aprendendo!

Você está absolutamente correto. O método forEach é usado para iterar sobre cada elemento de um array (neste caso, a lista de botões) e executar uma função para cada um desses elementos.

No exemplo que você compartilhou, a função anônima que é chamada para cada botão na lista btn recebe um argumento, que é o próprio botão individual (ou contexto, como você chamou). Esta função, em seguida, remove a classe 'active' deste botão.

A confusão pode surgir porque o nome 'contexto' foi usado para dois propósitos diferentes. No primeiro caso, 'contexto' é o argumento para a função anônima passada para forEach, representando cada botão individual. No segundo caso, 'contexto' é o argumento para a função alterContext, que parece ser usada para alterar o contexto de algo (talvez o contexto da aplicação como um todo, embora isso não esteja claro apenas com o código fornecido).

Você fez um excelente trabalho ao renomear os argumentos para 'contexto1' e 'contexto2' para esclarecer a distinção entre os dois.

Um abraço e bons estudos.

obrigado!! Fico sempre feliz em ajudar! Afinal, um dos melhores jeitos de se aprender é ensinando