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