Ce face Array.prototype.findIndex
findIndex funcționează ca find, dar returnează poziția elementului, nu elementul. Dacă niciun element nu îndeplinește condiția, returnează -1.
Este util când trebuie să modifici sau să ștergi elementul găsit, de exemplu cu splice. Pentru căutarea unei valori simple, fără condiție, folosește indexOf.
Parametri
| Parametru | Descriere |
|---|---|
functie |
Primește (element, indice, tablou) și returnează adevărat pentru elementul căutat. |
Ce returnează
Poziția găsită sau -1.
Exemple
Exemplul 1: Poziția unui utilizator
const utilizatori = [{ id: 7, nume: "Ana" }, { id: 9, nume: "Radu" }, { id: 12, nume: "Ioana" }];
console.log(utilizatori.findIndex((u) => u.id === 9));
console.log(utilizatori.findIndex((u) => u.id === 99));
Rezultat
1
-1
Exemplul 2: Actualizarea unui produs din coș
const cos = [{ produs: "Carte", buc: 1 }, { produs: "Pix", buc: 3 }];
const poz = cos.findIndex((p) => p.produs === "Pix");
if (poz !== -1) cos[poz] = { ...cos[poz], buc: cos[poz].buc + 1 };
console.log(cos);
Rezultat
[ { produs: 'Carte', buc: 1 }, { produs: 'Pix', buc: 4 } ]
Greșeli frecvente
- Scrii
if (tablou.findIndex(...)). Poziția 0 este falsă, iar -1 este adevărat. Compară explicit cu!== -1.
Comenzi înrudite
find: Returnează primul element care îndeplinește o condiție.Array.prototype.findLast / findLastIndex: Caută de la sfârșitul tabloului spre început și returnează ultimul element care îndeplinește condiția.Array.prototype.indexOf / lastIndexOf: Returnează poziția primei (sau ultimei) apariții a unei valori în tablou, ori -1.