keys() メソッドは、配列の各インデックスのキーを含む、新しい Array Iterator オブジェクトを返します。

構文

arr.keys()

戻り値

新しい Array の反復子オブジェクトです。

基本的な使い方

【訳注: 下記のサンプルは keys() の本質を解説していますが「基本的な使い方」と言うほど一般的ではないかもしれません。通常は Array.from()for...of と組み合わせて使うことが多いでしょう。】

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 }

キーイテレーターは抜けを無視しない

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

仕様

仕様書 状況 コメント
ECMAScript 2015 (6th Edition, ECMA-262)
Array.prototype.keys の定義
標準 初期定義です。
ECMAScript Latest Draft (ECMA-262)
Array.prototype.keys の定義
ドラフト  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
keysChrome 完全対応 38Edge 完全対応 12Firefox 完全対応 28IE 未対応 なしOpera 完全対応 25Safari 完全対応 8WebView Android 完全対応 ありChrome Android 完全対応 ありFirefox Android 完全対応 28Opera Android 完全対応 ありSafari iOS 完全対応 8Samsung Internet Android 完全対応 ありnodejs 完全対応 0.12

凡例

完全対応  
完全対応
未対応  
未対応

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mdnwebdocs-bot, segayuu, woodmix, Marsf, shide55
最終更新者: mdnwebdocs-bot,