Veja nesse artigo
Introdução
O Javascript contém diversas estruturas de repetição, e uma delas é o forEach. O forEach é utilizado para percorrer um array, que pode ser um array simples, ou um array de objetos.
Array simples
O forEach funciona da seguinte maneira, a partir de um array, você usa o forEach, e na prática, ele executará uma função para cada elemento do seu array. Essa função é chamada de função de callback. Vamos ver um exemplo:
let array_de_pessoas = ['João', 'Maria', 'José'];
array_de_pessoas.forEach((valorAtual, indice, array) => {
console.log(`${valorAtual}, ${indice}, ${array}`);
//irá imprimir o resultado no console:
//João, 0, João,Maria
//Maria, 1, João,Maria
});
Vamos entender melhor o que acontece nessa função. Na primeira linha, eu tenho o array de pessoas no qual será percorrido pela função foreach. Na linha 2 eu faço o array de pessoas chamar a função forEach, e depois do primeiro parênteses, é a função que é executada para cada valor do array, a função de callback.
A função de callback pode receber até 3 parâmetros, e eles não são obrigatórios, caso queira, pode utilizar somente o primeiro e não passar mais nenhum.
O primeiro parâmetro, é o valor atual, esse valor vai ser cada item do array, no nosso exemplo, temos um array com 3 posições, o forEach ele vai executar a função de callback uma vez para cada posição do array, sendo assim, na primeira vez que executar, o nosso valor atual conterá o nome do João, na segunda terá Maria, e na terceira José.
O segundo é o índice, todo array, tem um índice, que é utilizado para marcar cada posição do array, e o índice começa sempre em 0.
O terceiro é o array propriamente dito, caso você precise, você pode utilizar esse terceiro parâmetro para realizar algum processamento com esses dados, porém normalmente não é comum precisar desse parâmetro.
Então dessa forma você pode percorrer todo um array, e manipular os dados desejados, e com esses parâmetros você pode utilizar melhor sua lógica para resolver determinado problema.
Array de objetos
Os arrays de objetos são muito comuns, e há momentos que precisamos percorrer esses dados, e funciona da mesma maneira do array simples, a única diferença é que em cada posição, que seria o valorAtual, em vez de ter somente uma string, vai ter um objeto literal, e dessa forma você pode acessar cada posição do objeto, por exemplo:
let pessoas = [
{
nome: 'Joao',
idade: 30
},
{
nome: 'Maria',
idade: 20
}
];
pessoas.forEach((pessoa, index, array) => {
console.log(`O nome é: ${pessoa.nome} e tem a idade ${pessoa.idade}`)
//vai aparecer no console
//O nome é: João e tem a idade 30
//O nome é: Maria e tem a idade 20
});
Break foreach, parando o loop
Há momentos nos quais você pode querer parar a execução de um loop, por exemplo, você está procurando por um valor dentro de um array, e quando você o acha, você não quer continuar passando pelo loop, porque não precisa, porém não é possível fazer isso com o foreach.
Caso você precise fazer isso, é necessário utilizar o loop for que com ele é possível ter o controle de parada com o break.
Pulando para a próxima posição “continue”
No forEach não é possível dar um continue e pular para a próxima posição do array, mas o que da para fazer, é colocar um return na função, que no caso, quando a função estiver executando em determinado elemento e você colocar o return, ele vai parar a execução naquela posição e vai para a próxima, por exemplo:
let pessoas = [
{
nome: 'Joao',
idade: 30
},
{
nome: 'Maria',
idade: 20
}
];
pessoas.forEach((pessoa, index, array) => {
if(idade > 25){
return;
}
console.log(`O nome é: ${pessoa.nome} e tem a idade ${pessoa.idade}`)
//vai aparecer no console
//O nome é: Maria e tem a idade 20
});
Nesse caso, o forEach pulou o João, porque ele tem idade maior que 25, e então o forEach pulou essa posição no array e foi executar a próxima posição.
Para saber mais
Caso você queira ver uma explicação detalhada e com um exemplo prático e real que pode ser utilizado no dia-a-dia, gravei um vídeo que vou deixar aqui abaixo:
Conclusão
O forEach é uma estrutura de repetição, que se bem utilizada, pode ser muito útil. Se estiver precisando percorrer um array para realizar algum processamento e não esperar nenhum retorno, essa é uma opção ideal para solucionar o seu problema. Espero que tenha gostado, até o próximo post 🙂
Para ver outros canais onde o posto conteúdo, veja os Links do Programando Soluções.
Referências:
https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach