Set【一意コレクション】オブジェクトの反復要素処理
・[@@iterator]【イテレータオブジェクト作成】
・entries【イテレータオブジェクト作成】
・forEach【反復要素処理】
・keys【イテレータオブジェクト作成 (キー)】
・values【イテレータオブジェクト作成 (値)】
メモ
概要
- Set【一意コレクション】オブジェクトの反復要素処理
- 基本操作:Set【一意コレクション】オブジェクトの基本操作 参照
外部リンク
- ECMA-262 (英語)
Set.prototype.entries ( ) ES2024 (15) ES2023 (14) ES2022 (13) Set.prototype.keys ( ) ES2024 (15) ES2023 (14) ES2022 (13) Set.prototype [ @@iterator ] ( ) ES2024 (15) ES2023 (14) ES2022 (13) Set.prototype.values ( ) ES2024 (15) ES2023 (14) ES2022 (13) Set.prototype.forEach ( callbackfn [ , thisArg ] ) ES2024 (15) ES2023 (14) ES2022 (13)
構文
操作 | 構文 | 戻り値 | 例外 | 備考 |
---|---|---|---|---|
イテレータ オブジェクト作成 (キー・値) | entries( ) | イテレータ オブジェクト | キー = 値 | |
イテレータ オブジェクト作成 (キー) | keys( ) | イテレータ オブジェクト | キー = 値 | |
イテレータ オブジェクト作成 (値) | [@@iterator]( ) | イテレータ オブジェクト | [Symbol.iterator] ( ) | |
values( ) | イテレータ オブジェクト | |||
反復要素処理 | forEach( callbackfn [, thisArg ] ) | undefined | TypeError 例外 | |
for-of |
引数
- callbackfn:反復要素処理を行うコールバック関数
パラメータ (例) 説明 value 要素の値 key 要素のキー (キー = 値) setObj 対象 Set オブジェクト - thisArg:this として参照できるオブジェクト
例外
TypeError :コールバック関数が呼び出し不可
例
var entriesSet = new Set();
entriesSet.add(1);
entriesSet.add("string2");
var obj3 = new Object("obj3");
entriesSet.add(obj3);
var entries1 = entriesSet.entries();
for (let item of entries1) {
console.log(item);
}
// 出力:[1, 1]
// 出力:["string2", "string2"]
// 出力:[String, String]
var entries2 = entriesSet.entries();
for (let [key, value] of entries2) {
console.log(key, value);
}
// 出力:1 1
// 出力:string2 string2
// 出力:String... String...
var entries3 = entriesSet.entries();
for (var i = 0; i < entriesSet.size; i++) {
console.log(entries3.next().value);
}
// 出力:[1, 1]
// 出力:["string2", "string2"]
// 出力:[String, String]
var keysSet = new Set();
keysSet.add(1);
keysSet.add("string2");
var obj3 = new Object("obj3");
keysSet.add(obj3);
var keys1 = keysSet.keys();
for (let key of keys1) {
console.log(key);
}
// 出力:1
// 出力:string2
// 出力:String...
var keys2 = keysSet.keys();
for (var i = 0; i < keysSet.size; i++) {
console.log(keys2.next().value);
}
// 出力:1
// 出力:string2
// 出力:String...
var iteratorSet = new Set();
iteratorSet.add(1);
iteratorSet.add("string2");
var obj3 = new Object("obj3");
iteratorSet.add(obj3);
var iterator1 = iteratorSet[Symbol.iterator]();
for (let value of iterator1) {
console.log(value);
}
// 出力:1
// 出力:string2
// 出力:String...
var iterator2 = iteratorSet[Symbol.iterator]();
for (var i = 0; i < iteratorSet.size; i++) {
console.log(iterator2.next().value);
}
// 出力:1
// 出力:string2
// 出力:String...
var valuesSet = new Set();
valuesSet.add(1);
valuesSet.add("string2");
var obj3 = new Object("obj3");
valuesSet.add(obj3);
var values1 = valuesSet.values();
for (let value of values1) {
console.log(value);
}
// 出力:1
// 出力:string2
// 出力:String...
var values2 = valuesSet.values();
for (var i = 0; i < valuesSet.size; i++) {
console.log(values2.next().value);
}
// 出力:1
// 出力:string2
// 出力:String...
function forEachFunc(value, key, setObj) {
console.log(value, key);
}
var forEachSet = new Set();
forEachSet.add(1);
forEachSet.add("string2");
var obj3 = new Object("obj3");
forEachSet.add(obj3);
forEachSet.forEach(forEachFunc);
// 出力:1 1
// 出力:string2 string2
// 出力:String... String...
var forEachFunc2 = null;
forEachSet.forEach(forEachFunc2); // TypeError 例外
var forOfSet = new Set();
forOfSet.add(1);
forOfSet.add("string2");
var obj3 = new Object("obj3");
forOfSet.add(obj3);
for (let value of forOfSet) {
console.log(value);
}
// 出力:1
// 出力:string2
// 出力:String...