Skip to content

Trabalhando com Arrays em JavaScript

Esse é o primeiro post de uma série sobre as novas propriedades do objeto global Array que foram incorporadas a partir da versão ES6. Esse post será sobre os métodos Array.from() e Array.fill().

Método Array.from()

O método from() é responsável por criar uma nova instância de array a partir de um objeto iterável. E recebe três argumentos – 1 obrigatório e 2 opcionais – em sua declaração:

  • um objeto iterável – Obrigatório
  • callback atuando como uma função map() – Opcional
  • valor de this da função de callback – Opcional

Vejamos alguns exemplos do seu uso:

const str = 'JavaScript';
Array.from(str);

//Saída -> ['J', 'a', 'v', 'a', 'S', 'c', 'r', 'i', 'p', 't']

const obj = {
  'number' : 2
};
console.log(Array.from('123', item => parseInt(item) * obj.number))

//Saída -> [2, 4, 6]

Nesse exemplo não passei o this porque utilizei uma arrow function e ela tem uma particularidade para lidar com o lexical this, conforme explico nesse post Arrow Functions –
Declaração, funcionamento, escopo e o valor de this
.

Mas podemos alterar a função que o resultado será o mesmo:

Array.from('123', function(item){
    return parseInt(item) * this.number;
}, obj);

Método Array.fill()

O método fill() preenche todo array com o valor passado como primeiro argumento.

Vejamos na prática:

const arr = [1, 2, 3, 4, 5];
arr.fill(6);

//Saída -> [6, 6, 6, 6, 6]

Se for passado mais dois argumentos – start e end – para o método, o array é preenchido parcialmente a partir do índice start até o índice end - 1.

arr.fill(7, 1, 3);

//Saída -> [1, 7, 7, 4, 5]

Agora se apenas o segundo argumento – start – for passado, o array é preenchido a partir dele até o último elemento.

arr.fill(7, 2);

//Saída -> [1, 2, 7, 7, 7]

Caso o valor do índice start ou end seja um valor negativo, então o método fill() os trata da seguinte forma: o valor do índice é substituido pela soma do tamanho do array com o número negativo, por exemplo, se o valor de start for -2, então será declarado da seguinte forma:

arr.fill(7, -2) // arr.fill(7, (arr.length + start))

//Saída -> [1, 2, 3, 7, 7]

E se declararmos o valor de end com -2:

arr.fill(7, 2, -2);

//Saída -> [1, 2, 7, 4, 5]

Bom esse é o funcionamento dos métodos Array.from() e Array.fill(). Nos próximos posts falaremos mais sobre outros métodos.

Até mais!

Published inArtigosJavaScript