🚀 Find vs FindIndex em JavaScript: quando usar cada um?
No ecossistema do JavaScript, métodos de arrays são essenciais para escrever códigos mais limpos e eficientes.
Entre eles, .find() e .findIndex() se destacam por resolverem problemas semelhantes, mas com retornos diferentes.
🔍 O que é o .find()?
O método .find() percorre o array e retorna o primeiro elemento que satisfaz uma condição (callback).
Caso não encontre, retorna undefined.
const nums = [10, 20, 30];
const result = nums.find(n => n > 15);
// 20
Ideal quando você precisa do valor em si.
📍 O que é o .findIndex()?
Já o .findIndex() retorna o índice do primeiro elemento que atende à condição.
Se não encontrar, retorna -1.
const nums = [10, 20, 30];
const index = nums.findIndex(n => n > 15);
// 1
Perfeito quando você precisa da posição no array.
⚖️ Semelhanças entre eles
- ✅ ambos recebem uma função de teste (callback)
- ✅ percorrem o array até encontrar o primeiro match
- ✅ param a execução assim que encontram o resultado
- ✅ são métodos iterativos modernos (ES6+)
⚔️ Principais diferenças
- 🔸 .find() retorna o elemento
- 🔸 .findIndex() retorna o índice
- 🔸 .find() retorna undefined se não encontrar
- 🔸 .findIndex() retorna -1 se não encontrar
💡 Quando usar cada um?
- ✔ use .find() quando precisa manipular diretamente o objeto ou valor encontrado
- ✔ use .findIndex() quando precisa atualizar, remover ou acessar via índice
🧠 Resumo prático
Se você quer o conteúdo, use .find().
Se você quer a posição, use .findIndex().
Dominar essa diferença evita loops desnecessários e deixa seu código muito mais expressivo.