Executando verificação de segurança...
2

Só pra constar (e desviando um pouco do assunto principal), quando uma arrow function só tem um parâmetro, os parênteses podem ser omitidos. E quando ela só tem uma única expressão, as chaves e a própria palavra return também podem ser omitidas. Ou seja, poderia ser apenas:

const numeros = [1, 2, 3, 4, 5];
const quadrados = numeros.map(numero => numero * numero);

E para fazer um loop pelos elementos, caso você não precise do índice (e somente dos valores), pode usar for..of:

const numeros = [1, 2, 3, 4, 5];
const quadrados = [];
for (const numero of numeros) {
    quadrados.push(numero * numero);
}

Por fim, outra solução é criar o array com o tamanho correto e só ir setando os índices um a um:

const numeros = [1, 2, 3, 4, 5];
const quadrados = Array(numeros.length);
for (let i = 0; i < numeros.length; i++)
    quadrados[i] = numeros[i] * numeros[i];

Fazendo um teste rápido aqui com o Benchmark.js, esta solução se mostrou a mais rápida de todas (e a diferença aumenta ainda mais conforme o array cresce).

Claro que para poucos arrays pequenos não importa, a diferença será irrisória (para poucos dados, tudo é rápido), mas se precisar processar muitos arrays grandes, pode começar a fazer diferença e é importante saber desses detalhes.

E aí a escolha vai muito além de "imperativo vs declarativo", tem muito mais a ver com saber como cada solução funciona. O map (e seus "amigos funcionais" reduce, filter, forEach, etc) recebe como parâmetro uma função de callback. Ou seja, para cada elemento do array, haverá uma chamada de função, e isso tem o seu custo. Com o loop simples, essas chamadas não ocorrem e daí a diferença (mas for..of, por sua vez, usa o protocolo de iteradores, que nas implementações atuais não está tão eficiente e dependendo do caso fica pior que map).

Sobre "devs mais experientes gostam da forma imperativa", acho que é mais o seu viés. Já vi pessoas experientes que gostam mais de um ou do outro, ou de ambos (e escolhem qual usar conforme as circunstâncias, analisando o contexto - como aliás deveria ser para qualquer coisa na nossa área).

Carregando publicação patrocinada...
1