JavaScript/Map/prototype/values
表示
Map.prototype.values()
[編集]Map.prototype.values()
は、Mapオブジェクトの値を反復処理するためのイテレータを返すメソッドです。
構文
[編集]map.values()
返り値
[編集]Mapオブジェクトの値を順次返す Iterator オブジェクト
説明
[編集]- Mapオブジェクトの各値を順番に取得できるイテレータを生成
- 元のMapオブジェクトを変更せずに反復処理が可能
- ECMAScript 2015 (ES6) で導入されたメソッド
使用例
[編集]基本的な使用
[編集]const map = new Map([ ['a', 1], ['b', 2], ['c', 3] ]); const iterator = map.values(); console.log(iterator.next().value); // 1 console.log(iterator.next().value); // 2 console.log(iterator.next().value); // 3
const map = new Map([ ['name', 'John'], ['age', 30], ['city', 'New York'] ]); for (const value of map.values()) { console.log(value); // 'John', 30, 'New York' を順に出力 }
const map = new Map([ ['x', 10], ['y', 20], ['z', 30] ]); const values = [...map.values()]; console.log(values); // [10, 20, 30]
特殊な動作
[編集]値の型の多様性
[編集]const map = new Map([ ['number', 42], ['string', 'Hello'], ['boolean', true], ['object', { key: 'value' }], ['array', [1, 2, 3]] ]); for (const value of map.values()) { console.log(typeof value); } // 出力: // 'number' // 'string' // 'boolean' // 'object' // 'object'
注意点
[編集]- イテレータは一度しか使用できません
- 新しい配列を生成するわけではありません
- 空のMapに対しては空のイテレータを返します
- 値のみを返し、対応するキーは返しません
ブラウザ互換性
[編集]- モダンブラウザで広くサポート
Internet Explorerでは利用不可- Node.js 4.0.0 以降でサポート
関連メソッド
[編集]仕様
[編集]- ECMAScript 2015 (ECMA-262)
高度な使用例
[編集]値の型によるフィルタリング
[編集]const map = new Map([ ['a', 1], ['b', 'text'], ['c', true], ['d', 42] ]); const numberValues = [...map.values()].filter(value => typeof value === 'number'); console.log(numberValues); // [1, 42]
値の合計計算
[編集]const map = new Map([ ['apple', 5], ['banana', 3], ['orange', 7] ]); const totalFruits = [...map.values()].reduce((sum, count) => sum + count, 0); console.log(totalFruits); // 15