MDN will be in maintenance mode on Friday September 22nd, starting at 10 AM Pacific / 5 PM UTC, for about 1 hour.

The keys() method returns a new Array Iterator object that contains the keys for each index in the array.

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

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



Return value

A new Array iterator object.


Key iterator doesn't ignore holes

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


Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Array.prototype.keys' in that specification.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Array.prototype.keys' in that specification.
Living Standard  

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic Support38 (Yes)28 No257.1
FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Basic Support (Yes) (Yes) (Yes)28 No (Yes)8.0

See also

Document Tags and Contributors

 Last updated by: fscholz,