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
