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().
- Нотатка
-
Використання методу
автор: Bondkeys()дозволяє перебирати ключі масиву в цикліfor...ofабо за допомогою ітератораnext(). Це дозволяє отримати доступ до кожного ключа (індексу) масиву по черзі. - Нотатка
-
Зверніть увагу, що ітератор, що створюється за допомогою методу
автор: Bondkeys(), враховує лише числові ключі з реальними значеннями, оминаючи пусті або видалені елементи. Якщо ж ви хочете отримати всі ключі, незалежно від їхнього стану (включаючи індекси пустих або видалених елементів), розгляньте можливість використанняArray.prototype.entries(). - Нотатка
-
Зверніть увагу, що метод
автор: Bondkeys()повертає ітератор, а не сам масив ключів. Щоб отримати масив ключів, ви можете використати операторspread(розподілу) або методArray.from()для конвертації ітератора у масив. - Нотатка
-
Метод
автор: Bondkeys()передбачає, що значенняthisміститиме властивістьlengthі властивості з цілочисельними ключами. - Нотатка
-
Для розріджених масивів (з пустими значеннями),
автор: Bondkeys()обходить всі порожні ячейки, розглядаючи їхні значення якundefined.
Синтаксис
keys()
Повернення
object-
Новий ітерабельний об'єкт.
автор: Bond
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 38 | 28 | 8 | 25 | 12 |
| Переглядач | ||||
|---|---|---|---|---|
| 38 | 38 | 28 | 8 |
| Переглядач | ||
|---|---|---|
| 0.12.0 | 1.0 |
Приклади
+ запропонувати свій приклад у пісочниці
На відміну від 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]
Метод keys() зчитує властивість length даного об'єкта і повертає всі цілочисельні індекси від 0 до length - 1. Фактичного доступу до індексів не відбувається.
const arrayLike = {
length: 3,
};
for (const entry of Array.prototype.keys.call(arrayLike)) {
console.log(entry);
}
// 0
// 1
// 2
Даний приклад демонструє використання методу keys() на масиві для отримання ключів ітератора. Ми проходимося по кожному ключу ітератора та виводимо їх на сторінку.
Коментарі
Коментарів ще немає — будьте першим!