JavaScript/Set/prototype/values
Set.prototype.values()
編集Set.prototype.values()
は、Setオブジェクトの値を反復処理するためのイテレータを返すメソッドです。
構文
編集set.values()
返り値
編集説明
編集- Setオブジェクトの各値を順番に取得できるイテレータを生成
- 元のSetオブジェクトを変更せずに反復処理が可能
- ECMAScript 2015 (ES6) で導入されたメソッド
- Setでは、キーと値が同じであるため、
values()
メソッドはkeys()
メソッドと同等の動作をします
使用例
編集基本的な使用
編集const set = new Set([1, 2, 3]); const iterator = set.values(); console.log(iterator.next().value); // 1 console.log(iterator.next().value); // 2 console.log(iterator.next().value); // 3
for...of ループでの使用
編集const set = new Set(['apple', 'banana', 'orange']); for (const value of set.values()) { console.log(value); // 'apple', 'banana', 'orange' を順に出力 }
const set = new Set([10, 20, 30]); const values = [...set.values()]; console.log(values); // [10, 20, 30]
特殊な動作
編集重複値の排除
編集const set = new Set([1, 2, 2, 3, 3, 4]); console.log([...set.values()]); // [1, 2, 3, 4] // 重複した値は自動的に排除されます
異なる型の値
編集const set = new Set([ 42, 'text', true, { key: 'value' }, [1, 2, 3] ]); for (const value of set.values()) { console.log(typeof value); } // 出力: // 'number' // 'string' // 'boolean' // 'object' // 'object'
注意点
編集- イテレータは一度しか使用できません
- 新しい配列を生成するわけではありません
- 空のSetに対しては空のイテレータを返します
- Setの
values()
メソッドはkeys()
メソッドと同じ動作をします
ブラウザ互換性
編集- モダンブラウザで広くサポート
Internet Explorerでは利用不可- Node.js 4.0.0 以降でサポート
関連メソッド
編集仕様
編集- ECMAScript 2015 (ECMA-262)
高度な使用例
編集配列からユニークな値を取得
編集const array = [1, 2, 2, 3, 4, 4, 5]; const uniqueValues = [...new Set(array).values()]; console.log(uniqueValues); // [1, 2, 3, 4, 5]
値のフィルタリング
編集const set = new Set([1, 2, 3, 4, 5, 6]); const evenValues = [...set.values()].filter(value => value % 2 === 0); console.log(evenValues); // [2, 4, 6]