Os Métodos Find & FindIndex
Parte da seção Lógica & Fluxo do Journey de JavaScript da Coddy — lição 58 de 65.
O método find() retorna o primeiro elemento em um array que satisfaz uma função de teste fornecida. Se nenhum elemento for encontrado, ele retorna undefined.
O método findIndex() é semelhante, mas retorna o índice do primeiro elemento correspondente em vez do próprio elemento. Se nenhum elemento for encontrado, ele retorna -1.
Sintaxe básica:
array.find(callback(element[, index[, array]]))
array.findIndex(callback(element[, index[, array]]))Exemplo simples com find():
const numbers = [5, 12, 8, 130, 44];
const found = numbers.find(num => num > 10);
console.log(found);
// 12 (primeiro número maior que 10)Mesmo exemplo com findIndex():
const numbers = [5, 12, 8, 130, 44];
const foundIndex = numbers.findIndex(num => num > 10);
console.log(foundIndex);
// 1 (índice do primeiro número maior que 10)Encontrando objetos em um array:
const inventory = [
{name: 'apples', quantity: 2},
{name: 'bananas', quantity: 0},
{name: 'oranges', quantity: 5}
];
// Usando find
const result = inventory.find(item => item.name === 'bananas');
console.log(result); // {name: 'bananas', quantity: 0}
// Usando findIndex
const index = inventory.findIndex(item => item.name === 'bananas');
console.log(index); // 1Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Folha de consulta
O método find() retorna o primeiro elemento que satisfaz uma função de teste, ou undefined se nenhum for encontrado:
const numbers = [5, 12, 8, 130, 44];
const found = numbers.find(num => num > 10);
console.log(found); // 12O método findIndex() retorna o índice do primeiro elemento correspondente, ou -1 se nenhum for encontrado:
const numbers = [5, 12, 8, 130, 44];
const foundIndex = numbers.findIndex(num => num > 10);
console.log(foundIndex); // 1Encontrando objetos em arrays:
const inventory = [
{name: 'apples', quantity: 2},
{name: 'bananas', quantity: 0},
{name: 'oranges', quantity: 5}
];
const result = inventory.find(item => item.name === 'bananas');
// {name: 'bananas', quantity: 0}
const index = inventory.findIndex(item => item.name === 'bananas');
// 1Experimente você mesmo
Esta lição não inclui um desafio de código.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Strings em Profundidade
Fundamentos de StringsIterar sobre StringsTemplate LiteralsMétodos de StringRecapitulação - String Weaver4JSON Parte 2
Iterar sobre JSONJSON AninhadoEncadeamento Opcional em JSONCópia Rasa e ProfundaRecapitulação - Loja de BicicletasRecapitulação - Sistema Solar7Sistema de Gerenciamento de Biblioteca
Visão Geral do ProjetoAdicionando Livros10Gerenciar Sistema de Festival
Visão Geral do ProjetoAdicionar Filmes e Locais2Arrays Multidimensionais
Fundamentos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DRecapitulação - Arrays 2DAdição e Subtração de MatrizesArrays IrregularesArrays 3D e AlémPadrões Comuns de Arrays 2DRecapitulação - Tudo Sobre Arrays5Sets Parte 1
O que é um Set?Iterando sobre SetsAdicionando um elementoRemovendo um elementoVerificando se um elemento existeTamanho e Is EmptyCopy e ClearRecapitulação - O básico de Sets8Tópicos Interessantes sobre Arrays
Desestruturação de ArraysSintaxe Spread em ArraysArrays EsparsosRecapitulação - Workshop de Arrays3JSON Parte 1
O que é um JSON?Verificar se a Chave ExisteMétodos de ObjetoO Spread Operator Parte 1O Spread Operator Parte 2Remover ChavesRecapitulação - Manipular Chaves JSON6Conjuntos Parte 2
Matemática - União de ConjuntosMatemática - Interseção de ConjuntosMatemática - Diferença de ConjuntosMatemática - Diferença SimétricaSubconjuntos e SuperconjuntosRecapitulação - Agrupar Amigos9Métodos Avançados de Array
Os Métodos Join & SplitO Método MapO Método FilterO Método ReduceEncadeamento de Métodos de ArrayForEach e Map são iguais?O Método SortOs Métodos Find & FindIndexRecapitulação - O Mestre do Encadeamento