1. Filtro
  2. Encontrar
  3. Inclui
  4. Índice de

Vamos discutir cada um deles.

Array.filter ()

Podemos usar o método Array.filter () para encontrar elementos em uma matriz que corresponda a atenda a uma determinada condição. Por exemplo, se queremos obter todos os itens em uma matriz de números maior que 10, podemos fazer isso.

const array = [10, 11, 3, 20, 5];const greaterThanTen = array.filter(element => element > 10);console.log(greaterThanTen) //[11, 20]

A sintaxe para usar o método array.filter () é

let newArray = array.filter(callback);

Onde

  • newArray – a nova matriz retornada
  • array – a matriz na qual o método de filtro é chamado
  • callback – a função de retorno de chamada aplicada a cada elemento da matriz

Se nenhum item da matriz atender à condição, uma matriz vazia será retornada. Você pode ler mais sobre esse método aqui.

Há momentos em que não precisamos de todos os elementos que atendem a uma determinada condição. Só precisamos de um elemento que corresponda à condição. Nesse caso, você precisa do método find ().

Array.find ()

Usamos o método Array.find () para encontrar o primeiro elemento que atenda a uma determinada condição. Assim como o método de filtro, ele recebe um retorno de chamada como argumento e retorna o primeiro elemento que atende à condição de retorno de chamada.

Vamos usar o método find na matriz em nosso exemplo acima.

const array = [10, 11, 3, 20, 5];const greaterThanTen = array.find(element => element > 10);console.log(greaterThanTen)//11

A sintaxe para o array.find () é

let element = array.find(callback);

O retorno de chamada é a função que é executada em cada valor da matriz recebe três argumentos:

  • element – o elemento que está sendo iterado – obrigatório
  • index – o índice / posição do elemento atual – opcional
  • array – a matriz que find foi chamado – opcional

Observe que, se nenhum item da matriz atender à condição, ele retornará undefined.

E se você quiser verificar se um determinado elemento está em uma matriz? Como você faz isso?

Array.includes ()

O método includes () determina se uma matriz inclui um determinado valor e retorna verdadeiro ou falso, conforme apropriado.

Portanto, no exemplo acima, se quisermos verificar se 20 é um dos elementos da matriz, podemos fazer isso:

const array = [10, 11, 3, 20, 5];const includesTwenty = array.includes(20);console.log(includesTwentyThree)//true

Você notará uma diferença entre este método e outros métodos que consideramos. Este método aceita um valor em vez de um retorno de chamada como argumento. Aqui está a sintaxe para o método includes.

const includesValue = array.includes(valueToFind, fromIndex)

Onde – valueToFind – o valor que você está verificando na matriz – obrigatório – fromIndex – o índice ou posição na matriz da qual você deseja iniciar a pesquisa do elemento. – opcional

Para entender o conceito do índice, vamos usar nosso exemplo novamente. Se quisermos verificar se o array contém 10 em outras posições, além do primeiro elemento, podemos fazer o seguinte:

const array = [10, 11, 3, 20, 5];const includesTenTwice = array.includes(10, 1);console.log(includesTenTwice)//false

Array.indexOf ()

O método indexOf () retorna o primeiro índice no qual um determinado elemento pode ser encontrado em uma matriz. Retorna -1 se o elemento não existir na matriz.

Vamos voltar ao nosso exemplo. Vamos encontrar o índice de 3 na matriz.

const array = [10, 11, 3, 20, 5];const indexOfThree = array.indexOf(3);console.log(indexOfThree)//2

Sua sintaxe é semelhante à do includes método.

const indexOfElement = array.indexOf(element, fromIndex)

Onde – element – o elemento que você está procurando na matriz – obrigatório – fromIndex – o índice ou posição na matriz da qual você deseja iniciar a pesquisa do elemento. – opcional

É importante notar que tanto o includes e indexOf Os métodos usam igualdade estrita (‘===’) para pesquisar a matriz. Se os valores forem de tipos diferentes, por exemplo, ‘4’ e 4, eles retornarão false e -1 respectivamente.

Resumo

Com esses métodos de matriz, você não precisa usar um loop for para pesquisar uma matriz. Dependendo do que você precisa, você pode decidir qual dos métodos é mais adequado para o seu caso de uso. Aqui está um resumo de quando usar cada método.

  • Usar filter se você deseja encontrar todos os itens em uma matriz que atendem a uma condição específica.
  • Usar find se você quiser verificar se pelo menos um item atende a uma condição específica.
  • Usar includes se você deseja verificar se uma matriz contém um valor específico.
  • Usar indexOf se você deseja encontrar o índice de um item específico em uma matriz.

Deseja ser notificado quando eu publicar um novo artigo? Clique aqui.