Spec-Zone.ru › JavaScript

Array.prototype.keys()

Базовый уровень Широко доступен

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в различных версиях браузеров. Она доступна во всех браузерах с мая 2018 года.

Метод keys() экземпляров Array возвращает новый объект итератора массива, который содержит ключи для каждого индекса в массиве.

Попробуйте

const array = ["a", "b", "c"];
const iterator = array.keys();

for (const key of iterator) {
  console.log(key);
}

// Expected output: 0
// Expected output: 1
// Expected output: 2

Синтаксис

keys()

Параметры

Отсутствуют.

Возвращаемое значение

Новый итерируемый объект итератора.

Описание

При использовании с разреженными массивами метод keys() итерирует пустые слоты, как если бы они имели значение undefined.

Метод keys() является универсальным. Он ожидает, что значение this будет иметь свойство length и свойства с целочисленными ключами.

Примеры

Использование keys() с разреженными массивами

В отличие от 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() на объектах, не являющихся массивами

Метод keys() считывает свойство length объекта this и затем выдает все целочисленные индексы в диапазоне от 0 до length - 1. Фактического доступа по индексу не происходит.

const arrayLike = {
  length: 3,
};
for (const entry of Array.prototype.keys.call(arrayLike)) {
  console.log(entry);
}
// 0
// 1
// 2

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-array.prototype.keys

Совместимость с браузерами

Настольные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
keys
38
12
28
25
8
38
28
25
8
3.0
38
8
1.0.0
1.0
0.12.0

Смотрите также

  • Полифил Array.prototype.keys в core-js
  • es-shims полифил Array.prototype.keys
  • Руководство по индексированным коллекциям
  • Array
  • Array.prototype.entries()
  • Array.prototype.values()
  • Array.prototype[Symbol.iterator]()
  • TypedArray.prototype.keys()
  • Протоколы итерации

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/keys

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API