- Filtro
- Encontrar
- Inclui
- Í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 retornadaarray
– a matriz na qual o método de filtro é chamadocallback
– 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órioindex
– o índice / posição do elemento atual – opcionalarray
– a matriz quefind
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.