--- title: Array.prototype.keys() slug: Web/JavaScript/Reference/Global_Objects/Array/keys tags: - Array - ECMAScript6 - Experimental - Expérimental(2) - Iterator - JavaScript - Method - Prototype - Reference - Référence(2) translation_of: Web/JavaScript/Reference/Global_Objects/Array/keys ---
{{JSRef}}

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

{{EmbedInteractiveExample("pages/js/array-keys.html")}}

Синтаксис

arr.keys()

Примеры

Пример: базовое использование

var arr = ['a', 'b', 'c'];
var iterator = arr.keys();

console.log(iterator.next()); // { value: 0, done: false }
console.log(iterator.next()); // { value: 1, done: false }
console.log(iterator.next()); // { value: 2, done: false }
console.log(iterator.next()); // { value: undefined, done: true }

Пример: итератор, возвращаемый методом keys(), не пропускает дырки в массиве

var arr = ['a', , 'c'];
var sparseKeys = Object.keys(arr);
var denseKeys = [...arr.keys()];
console.log(sparseKeys); // [0, 2]
console.log(denseKeys);  // [0, 1, 2]

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

Спецификация Статус Комментарии
{{SpecName('ES2015', '#sec-array.prototype.keys', 'Array.prototype.keys')}} {{Spec2('ES2015')}} Изначальное определение.
{{SpecName('ESDraft', '#sec-array.prototype.keys', 'Array.prototype.keys')}} {{Spec2('ESDraft')}}  

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

{{Compat("javascript.builtins.Array.keys")}}

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