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