Criar arrays de um comprimento específico é uma tarefa comum em JavaScript. Embora arrays em JavaScript sejam dinâmicos, inicializá-los com um tamanho predeterminado pode melhorar a legibilidade do código e, em alguns casos, o desempenho. Este artigo explora técnicas eficientes para alcançar isso.
Sumário
- Criando Arrays com o Construtor
Array()
- Preenchendo Arrays com
fill()
- Gerando Arrays com
map()
- Comparando os Métodos
Criando Arrays com o Construtor Array()
O método mais simples usa o construtor Array()
. Fornecer um único argumento numérico cria um array com esse comprimento, inicialmente preenchido com valores undefined
:
const arrayLength = 5;
const myArray = new Array(arrayLength);
console.log(myArray); // Saída: [ , , , , ] (ou [ ] dependendo do console do seu navegador)
console.log(myArray.length); // Saída: 5
Isso é eficiente para criar arrays onde os valores iniciais não são cruciais. Observe que a representação visual no console pode variar.
Preenchendo Arrays com fill()
Para arrays inicializados com um valor específico, o método fill()
é altamente eficiente e legível:
const arrayLength = 5;
const defaultValue = 0;
const myArray = new Array(arrayLength).fill(defaultValue);
console.log(myArray); // Saída: [0, 0, 0, 0, 0]
console.log(myArray.length); // Saída: 5
fill()
preenche diretamente o array, tornando-o a escolha preferida para este cenário comum.
Gerando Arrays com map()
Se você precisar gerar valores dinamicamente, o método map()
oferece flexibilidade. Combinado com o construtor Array()
, você pode criar e preencher um array em uma única etapa:
const arrayLength = 5;
const myArray = Array(arrayLength).fill().map((_, index) => index * 2); // Note o uso de fill() aqui para criar o array
console.log(myArray); // Saída: [0, 2, 4, 6, 8]
console.log(myArray.length); // Saída: 5
Este exemplo gera valores com base no índice, mas map()
pode lidar com qualquer lógica para criar o conteúdo desejado do array.
Comparando os Métodos
Embora o método apply()
tenha sido sugerido anteriormente, fill()
geralmente fornece melhor legibilidade e desempenho para inicializar arrays com um único valor. O construtor Array()
permanece útil para criar arrays vazios de um comprimento específico. map()
se destaca quando você precisa de geração de valores dinâmica.
Escolha o método que melhor se adapta às suas necessidades. Para inicialização simples com um valor constante, fill()
é a abordagem recomendada.