Set.prototype[Symbol.iterator]()
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´9æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
[Symbol.iterator]() 㯠Set ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ãå復å¦çãããã³ã«ãå®è£
ãã¦ããã Set ãªãã¸ã§ã¯ãããå復å¯è½ãªãã¸ã§ã¯ããæå¾
ããã»ã¨ãã©ã®æ§æãä¾ãã°ã¹ãã¬ããæ§æ ã for...of ã«ã¼ããªã©ã§å©ç¨ã§ããããã«ãã¾ããããã¯ãæ¿å
¥é ã«éåã®å¤ãè¿ãéåã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
ãã®ããããã£ã®åæå¤ã¯ãSet.prototype.values ããããã£ã®åæå¤ã¨åã颿°ãªãã¸ã§ã¯ãã§ãã
試ãã¦ã¿ã¾ããã
const set = new Set();
set.add(42);
set.add("forty two");
const iterator = set[Symbol.iterator]();
console.log(iterator.next().value);
// äºæ³ãããçµæ: 42
console.log(iterator.next().value);
// äºæ³ãããçµæ: "forty two"
æ§æ
set[Symbol.iterator]()
弿°
ãªãã
è¿å¤
Set.prototype.values() ã¨åãããå¤ã®éåãçæããæ°ããå復å¯è½ãªã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
ä¾
>for...of ã«ã¼ãã使ç¨ããå復å¦ç
ãã®ã¡ã½ãããç´æ¥å¼ã³åºãå¿
è¦ã¯ã»ã¨ãã©ãªããã¨ã«æ³¨æãã¦ãã ããã[Symbol.iterator]() ã¡ã½ããã®åå¨ã«ãã£ã¦ Set ãªãã¸ã§ã¯ãã¯å復å¯è½ã«ãªããfor...of æã®ãããªå復å¦çã®æ§æã¯èªåçã«ãã®ã¡ã½ãããå¼ã¶ãã¨ã§å復å¦çãè¡ãããã®ã¤ãã¬ã¼ã¿ã¼ãåå¾ã§ããããã«ãªãã¾ãã
const mySet = new Set();
mySet.add("0");
mySet.add(1);
mySet.add({});
for (const v of mySet) {
console.log(v);
}
æåã§ã¤ãã¬ã¼ã¿ã¼ãæ±ã
å復å¦çãæå¤§éã«å¶å¾¡ããããã«ãè¿ãããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ãã® next() ã¡ã½ãããæåã§å¼ã³åºããã¨ãå¯è½ã§ãã
const mySet = new Set();
mySet.add("0");
mySet.add(1);
mySet.add({});
const setIter = mySet[Symbol.iterator]();
console.log(setIter.next().value); // "0"
console.log(setIter.next().value); // 1
console.log(setIter.next().value); // {}
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-set.prototype-%symbol.iterator% > |