Метад indexOf

Метад indexOf ажыццяўляе пошук элемента ў масіве. У першым параметры паказваем элемент для пошуку. Метад вяртае нумар першага знойдзенага элемента, альбо -1, калі такога элемента няма. Другі неабавязковы параметр метаду задае пазіцыю, з якой следуе пачынаць пошук.

Сінтаксіс

javascriptмасіў.indexOf(элемент, [адкуль пачынаць]);

Прыклад

Давайце знойдзем пазіцыю першай тройкі ў масіве:

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

console.log(res);

Вынік выканання кода:

javascript2

Прыклад

Хай цяпер правяраемага элемента няма ў масіве:

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

console.log(res);

Вынік выканання кода:

javascript-1

Прыклад

Пачнем пошук з зададзенай пазіцыі:

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

console.log(res);

Вынік выканання кода:

javascript5

Частая памылка

Часта метад выкарыстоўваюць для праверкі наяўнасці элемента ў масіве. У гэтым выпадку лёгка дапусціць памылку, калі выканаць праверку наступным чынам:

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

Такая праверка будзе працаваць для ўсіх пазіцый, акрамя нулявой - бо яна трактуецца як false.

Правільна правяраць наяўнасць элемента наступным чынам:

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

Глядзіце таксама

  • метад includes,
    які правярае наяўнасць элемента ў масіве
  • метад lastIndexOf,
    які шукае элементы з канца
  • метад at,
    які вяртае элемент масіва па яго індэксе
  • метад match,
    які шукае супадзенні ў радку
  • метад search,
    які выконвае пошук