Array.prototype.findIndex în JavaScript

Tablouri (array) ES2015 (ES6)

Returnează poziția primului element care îndeplinește o condiție sau -1.

Sintaxă
tablou.findIndex((element, indice) => conditie)

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