Ce face Array.prototype.indexOf / lastIndexOf
indexOf caută valoarea de la început și returnează prima poziție unde o găsește. lastIndexOf caută de la sfârșit spre început. Dacă valoarea lipsește, ambele returnează -1.
Comparația este strictă (===), deci "1" și 1 sunt diferite, iar două obiecte cu același conținut sunt diferite. Spre deosebire de includes, indexOf nu găsește NaN.
Parametri
| Parametru | Descriere |
|---|---|
valoare |
Valoarea căutată. |
deLa |
Opțional. Poziția de la care începe căutarea (negativ: de la sfârșit). |
Ce returnează
Poziția (de la 0) sau -1.
Exemple
Exemplul 1: Prima și ultima apariție
const note = [7, 9, 10, 9, 8];
console.log(note.indexOf(9));
console.log(note.lastIndexOf(9));
console.log(note.indexOf(5));
console.log(note.indexOf("9"));
Rezultat
1
3
-1
-1
Exemplul 2: Eliminarea duplicatelor
const etichete = ["js", "css", "js", "html", "css"];
console.log(etichete.filter((e, i) => etichete.indexOf(e) === i));
Rezultat
[ 'js', 'css', 'html' ]
Exemplul 3: NaN: indexOf față de includes
const valori = [1, NaN, 3];
console.log(valori.indexOf(NaN), valori.includes(NaN));
Rezultat
-1 true
Greșeli frecvente
- Cauți un obiect după conținut:
[{ id: 1 }].indexOf({ id: 1 })dă-1. FoloseștefindIndexcu o condiție.
Comenzi înrudite
includes: Verifică dacă un text conține alt text sau dacă un tablou conține o valoare.Array.prototype.findIndex: Returnează poziția primului element care îndeplinește o condiție sau -1.String.prototype.indexOf / lastIndexOf: Returnează poziția primei (sau ultimei) apariții a unui text, ori -1 dacă nu apare.