JS метод Array.keys()
Опис
Метод keys()
створює новий ітератор для масиву, що представляє ключі кожного елемента. Його основне призначення - допомогти вам пройтися по всіх ключах масиву, при цьому ігноруючи їхні значення. Важливо зауважити, що ітератор, що повертається методом keys()
, не враховує прототипи масиву або інші властивості, які не є цілочисельними ключами.
Розглянемо наступний код:
let fruits = ['apple', 'banana', 'cherry'];
let keys = fruits.keys();
for (let key of keys) {
console.log(key);
}
У цьому прикладі ми маємо масив fruits
, який містить три елементи. Використовуючи метод keys()
, ми отримуємо ітератор ключів (індексів). Після цього, за допомогою циклу for...of
, ми виводимо кожний ключ (індекс) масиву у консоль, отримуючи послідовність чисел: 0, 1, 2
.
Цей метод виявляється особливо корисним, коли використовується разом з іншими методами масиву, такими як map()
, filter()
та reduce()
.
Нотатка: | Використання методу |
Нотатка: | Зверніть увагу, що ітератор, що створюється за допомогою методу |
Нотатка: | Зверніть увагу, що метод |
Нотатка: | Метод |
Нотатка: | Для розріджених масивів (з пустими значеннями), |
Синтаксис
keys()
Параметри
Return
object
Новий ітерабельний об'єкт.
Переглядачі
Переглядач | |||||
---|---|---|---|---|---|
38 |
28 |
8 |
25 |
12 |
Переглядач | ||||
---|---|---|---|---|
38 |
38 |
28 |
8 |
Переглядач | ||
---|---|---|
0.12.0 |
1.0 |
Приклади
Даний приклад демонструє використання методу keys()
на масиві для отримання ключів ітератора. Ми проходимося по кожному ключу ітератора та виводимо їх на сторінку.
Метод keys()
зчитує властивість length
даного об'єкта і повертає всі цілочисельні індекси від 0 до length
- 1. Фактичного доступу до індексів не відбувається.
const arrayLike = {
length: 3,
};
for (const entry of Array.prototype.keys.call(arrayLike)) {
console.log(entry);
}
// 0
// 1
// 2
На відміну від Object.keys()
, який включає лише ключі, що фактично існують у масиві, ітератор keys()
не проігноровує порожні елементи, що представляють відсутні властивості.
const arr = ["a", , "c"];
const sparseKeys = Object.keys(arr);
const denseKeys = [...arr.keys()];
console.log(sparseKeys); // ['0', '2']
console.log(denseKeys); // [0, 1, 2]