JavaScript: Métodos de Array - Parte 2: some, every e includes

Silvério Vale • 2 de fevereiro de 2024

Thumbnail com a logo do JavaScript e o título abreviado do post. No background, um código ofuscado.

Neste segundo post da série, vamos explorar o some, o every e o includes, três métodos muito úteis mas não tão conhecidos.

A partir de agora, não perderei mais tempo fazendo comparações com o for e o while. Já deve ter ficado claro que, na maior parte das vezes, eles não são a alternativa mais elegante.

Mas, antes de pular para os métodos, vale a pena mencionar que esses três métodos foram agrupados no mesmo post pois todos eles servem para validar uma condição. Em outras palavras, eles vão te retornar um booleano (true ou false), indicando se o array atende ou não àquela condição.

Preparando o ambiente

Nos dois primeiros exemplos, o seguinte array de objetos será utilizado:


const animals = [
  {
    name: "Max",
    type: "dog",
  },
  {
    name: "Lucy",
    type: "cat",
  },
  {
    name: "Sparrow",
    type: "bird",
  },
];

some

O some serve para validar se o array possui algum elemento que atenda a determinada condição. Ou seja, para que ele retorne true, basta que um único elemento do array satisfaça a condição.

E qual é essa condição? Você deverá informá-la passando uma função por parâmetro ao some.

Por exemplo, tomando nossa lista de animais, se você deseja saber se nela tem ao menos um cachorro, você poderia escrever:


const hasADog = animals.some((animal) => animal.type === "dog");

A resposta será true, já que temos um cachorro em nossa lista.

every

O every, por sua vez, só irá retornar true se todos os elementos do array satisfizerem aquela condição.

Tomando o mesmo array de animais, suponha que você queira saber se todos eles são pássaros:


const allAnimalsAreBirds = animals.every((animal) => animal.type === "bird");

A resposta será false, já que também temos um cão e um gato na lista.

includes

O includes verifica se um elemento está presente no array. Para o exemplo, vamos usar um array de strings.


const zooAnimals = ['lion', 'snake', 'giraffe', 'monkey', 'tiger'];

const zooHasTiger = zooAnimals.includes('tiger');

A resposta será true, pois o array zooAnimals contém um string de valor "tiger".

Conclusão

Se quiser saber se algum elemento do array atende a uma condição, use some. Se quiser saber se todos atendem, use every. Se desejar saber se o array possui um item, use includes.

Eu sei que você consegue pensar em várias outras formas de obter as mesmas informações, mas serão elas tão elegantes e legíveis?

Referências

© 2023 Cartas de um Dev. Todos os Direitos Reservados.