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() дозволяє перебирати ключі масиву в циклі for...of або за допомогою ітератора next(). Це дозволяє отримати доступ до кожного ключа (індексу) масиву по черзі.

Нотатка:

Зверніть увагу, що ітератор, що створюється за допомогою методу keys(), враховує лише числові ключі з реальними значеннями, оминаючи пусті або видалені елементи. Якщо ж ви хочете отримати всі ключі, незалежно від їхнього стану (включаючи індекси пустих або видалених елементів), розгляньте можливість використання Array.prototype.entries().

Нотатка:

Зверніть увагу, що метод keys() повертає ітератор, а не сам масив ключів. Щоб отримати масив ключів, ви можете використати оператор spread (розподілу) або метод Array.from() для конвертації ітератора у масив.

Нотатка:

Метод keys() передбачає, що значення this міститиме властивість length і властивості з цілочисельними ключами.

Нотатка:

Для розріджених масивів (з пустими значеннями), keys() обходить всі порожні ячейки, розглядаючи їхні значення як undefined.

Синтаксис

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]