JS метод Array.indexOf()
Опис
Метод indexOf()
пропонує простий спосіб визначення позиції елемента в масиві. Він порівнює searchElement
з елементами масиву, використовуючи строгий принцип рівності — такий самий, як і у оператора ===
. Цікаво, що значення NaN
при такому порівнянні завжди вважається нерівним будь-якому іншому значенню, навіть самому собі. Отже, при спробі знайти NaN
метод indexOf()
завжди поверне -1
.
Основна робота методу полягає в тому, що він повертає індекс першого входження searchElement
у масив, або -1
, якщо такого елемента немає. Таким чином, легко визначити, чи містить масив певний елемент, порівнюючи результат indexOf()
з -1
.
Приклад:
let fruits = ["apple", "banana", "cherry"];
let index = fruits.indexOf("banana");
console.log(index); // 1
У цьому прикладі ми шукаємо індекс елемента banana
в масиві fruits
. Метод indexOf()
повертає значення 1
, оскільки banana
є другим елементом масиву (індексація починається з 0).
Нотатка: | Метод |
Нотатка: | Важливо пам'ятати, що |
Нотатка: | Важливо пам'ятати, що |
Нотатка: | Зверніть увагу на те, що при великих масивах або частих операціях пошуку може бути ефективніше використовувати структури даних, які спеціально розроблені для цих цілей, такі як хеш-таблиці або дерева пошуку. |
Нотатка: |
|
Нотатка: | Зверніть увагу, що |
Синтаксис
indexOf(searchElement)
indexOf(searchElement, fromIndex)
Параметри
- *
searchElement
Елемент, який потрібно знайти в масиві.
fromIndex
Індекс, з якого почати пошук, перетворений у ціле число.
- Від'ємний індекс рахується з кінця масиву - якщо
fromIndex < 0
, використовуєтьсяfromIndex + array.length
. Зверніть увагу, що в цьому випадку масив все ще проглядається з переду назад. - Якщо
fromIndex < -array.length
абоfromIndex
пропущено, використовується 0, що спричинює пошук по всьому масиву. - Якщо
fromIndex >= array.length
, масив не проглядається, і повертається -1.
- Від'ємний індекс рахується з кінця масиву - якщо
Return
integer
Індекс першого елемента (який дорівнює
searchElement
) в масиві. Повертає-1
, якщо елемент не знайдено.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
1 |
1.5 |
3 |
9.5 |
12 |
Переглядач | ||||
---|---|---|---|---|
37 |
18 |
4 |
1 |
Переглядач | ||
---|---|---|
0.10.0 |
1.0 |
Приклади
У цьому прикладі ми використовуємо метод indexOf()
для пошуку індексу певного елемента в масиві. Метод indexOf()
повертає перший індекс входження шуканого елемента або -1
, якщо елемент не знайдено.
Приклад використовує indexOf() для пошуку значень у масиві.
const array = [2, 9, 9];
array.indexOf(2); // 0
array.indexOf(7); // -1
array.indexOf(9, 2); // 2
array.indexOf(2, -1); // -1
array.indexOf(2, -3); // 0
У цьому прикладі ми знаходимо всі входження елемента "a" у масиві array
і зберігаємо їх індекси в indices
. В результаті виводимо масив індексів [0, 2, 4]
.
const indices = [];
const array = ["a", "b", "a", "c", "a", "d"];
const element = "a";
let idx = array.indexOf(element);
while (idx !== -1) {
indices.push(idx);
idx = array.indexOf(element, idx + 1);
}
console.log(indices);
// [0, 2, 4]
У цьому прикладі ми використовуємо indexOf()
для пошуку значення undefined
у масиві [1, , 3]
. Оскільки між другим і третім елементами є пустий слот, пошук повертає значення -1. Ви можете скопіювати цей код для використання у своєму довіднику.
console.log([1, , 3].indexOf(undefined)); // -1
У цьому прикладі ми використовуємо метод indexOf()
на об'єкті arrayLike
, який не є масивом. Ми використовуємо call()
для виклику методу indexOf()
на об'єкті arrayLike
, як будто це метод масиву. Метод indexOf()
повертає індекс першого входження шуканого елемента. У нашому випадку, ми шукаємо значення 2 і 5. Оскільки об'єкт arrayLike
має властивість length
, рівну 3, пошук за межами довжини об'єкта повертає значення -1.
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 5, // ігнорується indexOf(), оскільки length дорівнює 3
};
console.log(Array.prototype.indexOf.call(arrayLike, 2));
// 0
console.log(Array.prototype.indexOf.call(arrayLike, 5));
// -1