JavaScript/Array/prototype/keys
表示
Array.prototype.keys()
[編集]Array.prototype.keys()
は、配列のインデックスを反復処理するためのイテレータを返すメソッドです。
構文
[編集]array.keys()
返り値
[編集]配列のインデックスを順次返す Iterator オブジェクト
説明
[編集]- 配列の各要素のインデックスを順番に取得できるイテレータを生成
- 元の配列を変更せずに反復処理が可能
- ECMAScript 2015 (ES6) で導入されたメソッド
使用例
[編集]基本的な使用
[編集]const array = ['a', 'b', 'c']; const iterator = array.keys(); console.log(iterator.next().value); // 0 console.log(iterator.next().value); // 1 console.log(iterator.next().value); // 2
for...of ループでの使用
[編集]const array = ['x', 'y', 'z']; for (const key of array.keys()) { console.log(key); // 0, 1, 2 を順に出力 }
インデックスと値の同時取得
[編集]const array = ['apple', 'banana', 'cherry']; for (const [index, value] of array.entries()) { console.log(`インデックス: ${index}, 値: ${value}`); } // 出力: // インデックス: 0, 値: apple // インデックス: 1, 値: banana // インデックス: 2, 値: cherry
const array = ['x', 'y', 'z']; const keys = [...array.keys()]; console.log(keys); // [0, 1, 2]
特殊な動作 =
[編集]疎な配列の場合
[編集]const sparseArray = [1, , , 4]; const keys = [...sparseArray.keys()]; console.log(keys); // [0, 1, 2, 3] // 空のスロットも通常のインデックスとして扱われる
注意点
[編集]- イテレータは一度しか使用できません
- 新しい配列を生成するわけではありません
- 空の配列に対しては空のイテレータを返します
- インデックスのみを返し、実際の値は返しません
ブラウザ互換性
[編集]- モダンブラウザで広くサポート
- Internet Explorer では利用不可
- Node.js 4.0.0 以降でサポート
関連メソッド
[編集]仕様
[編集]- ECMAScript 2015 (ECMA-262)