JavaScript/Map/prototype/entries
表示
Map.prototype.entries()
[編集]Map.prototype.entries()
は、Mapオブジェクトのキーと値のペアを反復処理するためのイテレータを返すメソッドです。
構文
[編集]map.entries()
返り値
[編集]Mapオブジェクトの [キー, 値] ペアを順次返す Iterator オブジェクト
説明
[編集]- Mapオブジェクトの各要素について、キーと値のペアを順番に取得できるイテレータを生成
- 元のMapオブジェクトを変更せずに反復処理が可能
- ECMAScript 2015 (ES6) で導入されたメソッド
使用例
[編集]基本的な使用
[編集]const map = new Map([ ['a', 1], ['b', 2], ['c', 3] ]); const iterator = map.entries(); console.log(iterator.next().value); // ['a', 1] console.log(iterator.next().value); // ['b', 2] console.log(iterator.next().value); // ['c', 3]
const map = new Map([ ['name', 'John'], ['age', 30], ['city', 'New York'] ]); for (const [key, value] of map.entries()) { console.log(`${key}: ${value}`); } // 出力: // name: John // age: 30 // city: New York
const map = new Map([ ['x', 10], ['y', 20], ['z', 30] ]); const entries = [...map.entries()]; console.log(entries); // [['x', 10], ['y', 20], ['z', 30]]
特殊な動作 =
[編集]異なる型のキーと値
[編集]const map = new Map([ [1, 'number key'], ['string', 42], [true, { data: 'object' }], [Symbol('unique'), [1, 2, 3]] ]); for (const [key, value] of map.entries()) { console.log(`Key type: ${typeof key}, Value type: ${typeof value}`); }
注意点
[編集]- イテレータは一度しか使用できません
- 新しい配列を生成するわけではありません
- 空のMapに対しては空のイテレータを返します
- キーと値の両方を [キー, 値] 形式で返します
ブラウザ互換性
[編集]- モダンブラウザで広くサポート
Internet Explorerでは利用不可- Node.js 4.0.0 以降でサポート
関連メソッド
[編集]仕様
[編集]- ECMAScript 2015 (ECMA-262)
高度な使用例
[編集]オブジェクトへの変換
[編集]const map = new Map([ ['a', 1], ['b', 2], ['c', 3] ]); const obj = Object.fromEntries(map.entries()); console.log(obj); // { a: 1, b: 2, c: 3 }
フィルタリングと変換
[編集]const map = new Map([ ['apple', 5], ['banana', 3], ['orange', 7], ['grape', 2] ]); // 値が5以上の要素のみを含む新しいMapを作成 const filteredMap = new Map( [...map.entries()].filter(([key, value]) => value >= 5) ); console.log(filteredMap); // Map { 'apple' => 5, 'orange' => 7 }