このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
Array.prototype.keys()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
keys() はArray インスタンスのメソッドで、配列内の各インデックスのキーを含む、新しい配列イテレーターオブジェクトを返します。
In this article
試してみましょう
const array = ["a", "b", "c"];const iterator = array.keys();for (const key of iterator) { console.log(key);}// 予想される結果: 0// 予想される結果: 1// 予想される結果: 2構文
js
keys()引数
なし。
返値
新しい反復可能なイテレーターオブジェクトです。
解説
疎配列で使用した場合、keys() メソッドは空のスロットをundefined という値があるかのように反復処理します。
keys() メソッドは汎用的です。これはthis 値にlength プロパティと整数キーのプロパティがあることだけを期待します。
例
>疎配列に対する keys() の呼び出し
配列に実際に存在するキーだけを処理するObject.keys() とは異なり、keys() イテレーターは見つからないプロパティを表す穴を無視しません。
js
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()メソッドはthis のlength プロパティを読み込み、 0 からlength - 1 までのすべての整数インデックスを返します。実際にはインデックスアクセスは行われません。
js
const arrayLike = { length: 3,};for (const entry of Array.prototype.keys.call(arrayLike)) { console.log(entry);}// 0// 1// 2仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-array.prototype.keys> |