Метод 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() для конвертації ітератора у масив.
На відміну від Object.keys(), який включає лише ключі, що фактично існують у масиві, ітератор keys() не проігноровує порожні елементи, що представляють відсутні властивості.
Метод keys() зчитує властивість length даного об'єкта і повертає всі цілочисельні індекси від 0 до length - 1. Фактичного доступу до індексів не відбувається.
Даний приклад демонструє використання методу keys() на масиві для отримання ключів ітератора. Ми проходимося по кожному ключу ітератора та виводимо їх на сторінку.