Lidando com arrays em JavaScript

Métodos que vão simplificar seu trabalho com arrays em JavaScript.

~ 4 min. / 693 palavras JavaScript js

É muito comum no dia a dia do desenvolvedor utilizar arrays ao desenvolver soluções em seus projetos.

Neste post vamos abordar alguns métodos do JavaScript que vão facilitar a forma que você pode trabalhar com arrays e escrever códigos mais elegantes.

Vamos definir nossos arrays

const beers = ['Heineken', 'San Diego', 'Coruja', 'Saint Bier'];
const ages = [20, 25, 19, 21, 42];

Perceba que foram definidos dois arrays, onde serão utilizados nos métodos que serão exemplificados a seguir.

Desmistificando alguns métodos incríveis!

Agora que você já definiu os arrays necessários para trabalhar, vamos colocar a mão na massa e verificar os resultados com alguns métodos muito interessantes.

Array.every():

Possibilita testar todos os elementos do seu array. Caso algum dos elementos não passe pela condição definida por você, o retorno será false. Veja o exemplo:

// ES5
function isGreaterThan(age) {
  return age >= 18;
}
const greater = ages.every(isGreaterThan);

// ES6
const isGreaterThan = (age) => age > 18;
const greater = ages.every(isGreaterThan);

console.log(greater); // true
> true

O retorno da variável greater deve ser true, pois todos os valores do array ages são maiores que 18.

Obs.: Caso seja informado um array vazio o retorno padrão deve ser TRUE

Array.includes()

Possibilita verificar se um element existe ou não no array definido. Exemplo:

console.log(beers.includes('Skol')); // false
> false

console.log(ages.includes(25)); // true
> true

Nos casos citados acima os retornos serão false para beers.includes('Skol') e true para ages.includes(25).

Array.filter():

Este método possibilita você filtrar múltiplos elementos com uma condição definida por você. Exemplo:

// ES5
function startWithS(word) {
  return word.indexOf('S') === 0;
}

// ES6
const startWithS = (word) => word.indexOf('S') === 0;

const beersStartWithS = beers.filter(startWithS);

console.log(beersStartWithS); // [0: 'San Diego', 1: Saint Bier]
> [0: 'San Diego', 1: Saint Bier]

O retorno da variável beersStartWithS deve ser:

[
  0: 'San Diego',
  1: 'Saint Bier'
]

Sendo que todos os elementos retornados iniciam com a letra S.

Array.find():

O diferencial deste método comparado ao método filter() é que sempre será retornado apenas um elemento que se encaixe a condição definida por você. Confira o exemplo:

// ES5
function findSanDiego(element) {
  return element === 'San Diego';
}

// ES6
const findSanDiego = (element) => element === 'San Diego';

const beerSanDiego = beers.find(findSanDiego);

console.log(beerSanDiego); // 'San Diego'
> 'San Diego'

Criamos um filtro para buscar o elemento que se chama San Diego. Como nosso array beers possui um elemento com este nome, vamos receber o retorno San Diego na variável beerSanDiego, caso houvessem mais elementos com o mesmo nome receberíamos o primeiro que fosse encontrado em nosso array beers.

Obs.: Caso não houvessem elementos a serem retornados, obteríamos o retorno undefined.

Array.map()

Este método percorre todos os elementos do array, executando funções para cada elemento e retornando um novo array como resultado. Exemplo:

// ES5
function upAge(age) {
  return age + 1;
}

// ES6
const upAge = (age) => age + 1;

const newAges = ages.map(upAge);

console.log(newAges); // [0: 21, 1: 26, 2: 20, 3: 22, 4: 43]
> [0: 21, 1: 26, 2: 20, 3: 22, 4: 43]

Perceba que receberemos o seguinte retorno em newAges:

[
  0: 21,
  1: 26,
  2: 20,
  3: 22,
  4: 43
]

Onde foi acrescentado mais um aos seus valores iniciais.

Array.some()

Este método verifica se ao menos um elemento satisfaz a condição definida por você. Exemplo:

// ES5
function hasHeinekenOrSaint(beer) {
  return (beer === 'Saint Bier' || beer === 'Heineken');
}

// ES6
const hasHeinekenOrSaint = (beer) => (beer === 'Saint Bier' || beer === 'Heineken');

const heinekenSaint = beers.some(hasHeinekenOrSaint);

console.log(heinekenSaint); // true
> true

Neste caso está sendo verificado se existem ocasiões de elementos Heineken ou Saint Bier. Caso ocorrerem o resultado será true.

Array.reduce()

Você pode utilizar o método reduce para alguns casos, sendo um deles para facilitar cálculos. Exemplo:

// ES5
function reducerAge(accumulator, age) {
  return accumulator + age;
}

// ES6
const reducerAge = (accumulator, age) => accumulator + age;

const sumAges = ages.reduce(reducerAge);

console.log(sumAges); // 127
> 127

O retorno neste caso será 127 a soma de todas as idades.

Conclusão

Utilizar dos recursos oferecidos pela linguagem lhe da grandes poderes!

E você? Utiliza esses recursos? Compartilhe sua experiência nos comentários. ⚡️