Blog / Javascript

Como Criar e Popular Arrays em JavaScript: 5 Formas com Exemplos

TTulio Faria 25 de jul. de 2021 3 min de leitura
Como Criar e Popular Arrays em JavaScript: 5 Formas com Exemplos

É muito comum durante a solução de alguns problems com algorítmos de precisarmos de um array com valores padrão já inseridos.

Inclusive para gerar dados de testes. E podemos gerar o array com os mais diversos valores, como números, strings e até mesmo objetos.

O bom e velho for

A forma mais tradicional de fazer esta tarefa é utilizar o bom e velho for. Sem muitos segredos, podemos fazer o seguinte:

const array = []
const size = 10
for (let i = 0; i < size; i++) {
  array.push(i)
}
// array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Desta maneira podemos inclusive criar valores diferentes de inteiros, por exemplo:

const names = []
const size = 7
for (let i = 0; i < size; i++) {
  names.push({
    id: i,
    name: `Name ${i}`
  })
}
/*
names = 
    0: {id: 0, name: "Name 0"}
    1: {id: 1, name: "Name 1"}
    2: {id: 2, name: "Name 2"}
    3: {id: 3, name: "Name 3"}
    4: {id: 4, name: "Name 4"}
    5: {id: 5, name: "Name 5"}
    6: {id: 6, name: "Name 6"}
*/

Uma versão alternativa:

const size = 7
const names = new Array(size)

for (let i = 0; i < size; i++) {
  names[i] = {
    id: i,
    name: `Name ${i}`
  }
}
/*
names = 
    0: {id: 0, name: "Name 0"}
    1: {id: 1, name: "Name 1"}
    2: {id: 2, name: "Name 2"}
    3: {id: 3, name: "Name 3"}
    4: {id: 4, name: "Name 4"}
    5: {id: 5, name: "Name 5"}
    6: {id: 6, name: "Name 6"}
*/

Array.fill

Outra forma de gerar o array com valores é utilizando o Array.fill. Nesta forma, criamos um array com o tamanho desejado e informamos o valor para qual queremos preenchê-lo.

const array = new Array(15).fill('valor')
// array = ["valor", "valor", "valor", "valor", "valor", "valor", "valor", "valor", "valor", "valor", "valor", "valor", "valor", "valor", "valor"]

Uma observação importante é que o método fill usa a mesma referência. Ou seja, se passarmos um objeto como valor no fill, todos os itens do vetor referenciarão o mesmo objeto. E caso alteramos um deles, iremos alterar todos.

const people = new Array(3).fill({ name: 'Person' })
people[0].name = 'Changed Person'
/*
people = 
  0: {name: "Changed Person"}
  1: {name: "Changed Person"}
  2: {name: "Changed Person"}
*/

Existe uma forma de mudar ligeiramente este comportamento, bastando para isso conectar o fill com um map (lembrando que map transforma um vetor em outro).

const people = new Array(3).fill(null).map(() => ({ name: 'Person' }))
people[0].name = 'Changed Person'
/*
people = 
  0: {name: "Changed Person"}
  1: {name: "Person"}
  2: {name: "Person"}
*/

Array.from

Uma outra forma de criar um array é usando o Array.from. Esta versão é bastante simples:

const array = Array.from({ length: 5 }, () => 1)
// array = [1, 1, 1, 1, 1]
const people = Array.from({ length: 3 }, () => ({ name: 'Person' }))
/*
people = 
  0: {name: "Person"}
  1: {name: "Person"}
  2: {name: "Person"}
*/

Usando o Object.keys

Uma forma bastante interessante de gerar um array preenchido com números é usando uma característica de objetos (sim, objetos). Usaremos o Object.keys.

const numbers = Object.keys(new Array(5).fill(null))
// numbers = ["0", "1", "2", "3", "4"]

Repare que os números que foram inseridos no array estão com string. Podemos usar um map para convertê-los:

const numbers = Object.keys(new Array(5).fill(null)).map(Number)
// numbers = [0, 1, 2, 3, 4]

Bom é isso :) O que gostou destas formas de gerar um vetor? Qual a sua forma favorita?

Ah, todos os nossos cursos tem um módulos somente de Javascript ;) Conheça o Fullstack Master

T
Escrito por
Tulio Faria

Mestre em Sistemas de Informação pela USP e criador do DevPleno. Iniciou sua carreira como professor com apenas 18 anos em um curso técnico, foram 11 anos em sala de aula formando desenvolvedores fullstack no sul de Minas Gerais.

Javascript
Compartilhar X LinkedIn
Continue lendo

Insights relacionados