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)//11A 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 quefindfoi 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)//trueVocê 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)//falseArray.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)//2Sua 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
filterse você deseja encontrar todos os itens em uma matriz que atendem a uma condição específica. - Usar
findse você quiser verificar se pelo menos um item atende a uma condição específica. - Usar
includesse você deseja verificar se uma matriz contém um valor específico. - Usar
indexOfse você deseja encontrar o índice de um item específico em uma matriz.
Deseja ser notificado quando eu publicar um novo artigo? Clique aqui.