indexOf-metodi

Metodi indexOf suorittaa elementin haun taulukossa. Ensimmäisessä parametrissa määritämme haettavan elementin. Metodi palauttaa ensimmäisen löydetyn elementin numeron, tai -1, jos tällaista elementtiä ei ole. Toinen valinnainen parametri metodissa asettaa position, josta haun tulisi alkaa.

Syntaksi

javascripttaulukko.indexOf(elementti, [mistä aloittaa]);

Esimerkki

Etsitään ensimmäisen kolmikon positio taulukossa:

javascriptlet arr = [1, 2, 3, 3, 3, 4, 5];
let res = arr.indexOf(3);

console.log(res);

Koodin suorituksen tulos:

javascript2

Esimerkki

Oletetaan, että tarkistettavaa elementtiä ei ole taulukossa:

javascriptlet arr = [1, 2, 3, 4, 5];
let res = arr.indexOf(6);

console.log(res);

Koodin suorituksen tulos:

javascript-1

Esimerkki

Aloitetaan haku annetusta positiosta:

javascriptlet arr = [1, 2, 3, 4, 5, 3];
let res = arr.indexOf(3, 4);

console.log(res);

Koodin suorituksen tulos:

javascript5

Yleinen virhe

Joskus metodia käytetään tarkistamaan elementin olemassaoloa taulukossa. Tässä tapauksessa on helppo tehdä virhe, jos tarkistus suoritetaan seuraavalla tavalla:

javascriptif (arr.indexOf(3)) {
  console.log(true);
} else {
  console.log(false);
}

Tämä tarkistus toimii kaikille positioille paitsi nollalle - sillä se tulkitaan false:ksi.

Oikea tapa tarkistaa elementin olemassaolo on seuraava:

javascriptif (arr.indexOf(3) !== -1) {
  console.log(true);
} else {
  console.log(false);
}

Katso myös

  • metodi includes,
    joka tarkistaa elementin olemassaolon taulukossa
  • metodi lastIndexOf,
    joka etsii elementtejä lopusta alkaen
  • metodi at,
    joka palauttaa taulukon elementin sen indeksin perusteella
  • metodi match,
    joka etsii vastineita merkkijonossa
  • metodi search,
    joka suorittaa haun