Recentemente encontrei uma pergunta de entrevista que pedia diferentes maneiras de iterar em um objeto JavaScript Array. O prompt inicialmente parecia simples, pois esperava-se que eu fornecesse alguns exemplos de trechos de código. No entanto, esta questão me intrigou, então decidi me aprofundar um pouco mais em cada método, explorando não apenas como usá-los, mas também quando e por que você pode escolher uma abordagem em vez de outra.
Neste artigo, mostrarei vários métodos de iteração sobre arrays em JavaScript, destacando suas diferenças, vantagens e casos de uso.
para loop
Vantagens:
Antes do loop for...of ser introduzido, o loop for tradicional era o método padrão para iteração de array. No entanto, pode estar sujeito a erros, como iniciar o índice em 1 em vez de 0 ou usar erroneamente arr.length em vez de arr.length - 1. Como sugere o MDN, "geralmente é melhor usar para... de se você puder."
Quando usar:
Quando você precisar de controle total sobre a iteração, como pular iterações ou iterar ao contrário.
Quando você precisar do índice e do valor durante a iteração.
para...de
Vantagens:
Quando usar:
Quando você só precisa trabalhar com valores e não precisa de acesso aos índices.
Array.prototype.map()
Vantagens:
Quando usar:
Quando você deseja aplicar uma função a cada elemento de um array e precisa do resultado como um novo array.
Array.prototype.forEach()
Vantagens:
Quando usar:
Quando você deseja aplicar uma função a cada elemento de um array, mas não precisa retornar um novo array.
Array.prototype.entries()
Vantagens:
Quando usar:
Quando você precisar acessar os índices e valores dos elementos do array.
Array.prototype.keys()
Vantagens:
Quando usar:
Quando você precisa de um iterador que forneça apenas os índices dos elementos do array.
Array.prototype.values()
Vantagens:
Quando usar:
Quando você precisa de um iterador que forneça apenas os valores dos elementos do array.
O que são iteradores de array:
Array.prototype.entries(), Array.prototype.keys() e Array.prototype.values() retornam novos objetos iteradores de array. Esses iteradores permitem percorrer uma coleção semelhante a um array, um elemento por vez. Eles vêm com um método next() que fornece o próximo valor na sequência, que pode ser chamado conforme necessário, ajudando a economizar memória.
Aqui está um exemplo usando entradas():
const arr = ['a', 'b', 'c']; const iterator = arr.entries(); console.log(iterator.next()); // { value: [0, 'a'], done: false } console.log(iterator.next()); // { value: [1, 'b'], done: false } console.log(iterator.next()); // { value: [2, 'c'], done: false } console.log(iterator.next()); // { value: undefined, done: true }
Para ser sincero, eu não estava totalmente ciente de alguns detalhes e usos desses métodos, portanto, abordar essa questão da entrevista e aprofundar meu entendimento foi muito importante. Esteja você trabalhando com loops básicos ou técnicas de programação funcional mais avançadas, conhecer esses métodos pode aumentar significativamente a eficiência e a legibilidade do seu código.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3