Baseline Widely available
Symbol.iterator
ã¯éçãã¼ã¿ããããã£ã§ãã¦ã§ã«ãã¦ã³ã·ã³ãã«ã§ãã Symbol.iterator
ã表ãã¾ããå復å¯è½ãããã³ã«ã¯ããªãã¸ã§ã¯ãã®ã¤ãã¬ã¼ã¿ã¼ãè¿ãã¡ã½ãããããã®ã·ã³ãã«ã§æ¢ãã¾ãããªãã¸ã§ã¯ããå復å¯è½ã§ããããã«ã¯ã[Symbol.iterator]
ãã¼ãæã£ã¦ããªããã°ãªãã¾ããã
const iterable1 = {};
iterable1[Symbol.iterator] = function* () {
yield 1;
yield 2;
yield 3;
};
console.log([...iterable1]);
// Expected output: Array [1, 2, 3]
å¤
ã¦ã§ã«ãã¦ã³ã·ã³ãã« Symbol.iterator
ã§ãã
ãªãã¸ã§ã¯ããå復å¦çããå¿
è¦ãããå ´åï¼for..of
ã«ã¼ãã®éå§æãªã©ï¼ã¯ããã® [Symbol.iterator]()
ã¡ã½ããã弿°ãªãã§å¼ã³åºãããè¿ãããã¤ãã¬ã¼ã¿ã¼ã使ç¨ãã¦å復å¦çãããå¤ãåå¾ããã¾ãã
ä¸é¨ã®çµã¿è¾¼ã¿åã«ã¯æ¢å®ã®å復åä½ãããã¾ãããä»ã®åï¼Object
ãªã©ï¼ã«ã¯ããã¾ããã[Symbol.iterator]()
ã¡ã½ããã®çµã¿è¾¼ã¿åã¯æ¬¡ã®ã¨ããã§ãã
Array.prototype[Symbol.iterator]()
TypedArray.prototype[Symbol.iterator]()
String.prototype[Symbol.iterator]()
Map.prototype[Symbol.iterator]()
Set.prototype[Symbol.iterator]()
詳細ã«ã¤ãã¦ã¯ãå復å¦çãããã³ã«ãåç §ãã¦ãã ããã
ä¾ ã¦ã¼ã¶ã¼å®ç¾©ã®å復å¯è½ãªãã¸ã§ã¯ã次ã®ããã«ç¬èªã®å復å¯è½ãªãã¸ã§ã¯ãã使ã§ãã¾ãã
const myIterable = {};
myIterable[Symbol.iterator] = function* () {
yield 1;
yield 2;
yield 3;
};
[...myIterable]; // [1, 2, 3]
ã¾ãã¯ãè¨ç®ããããã£ã使ç¨ãã¦ãã¯ã©ã¹ããªãã¸ã§ã¯ãå ã§å復å¯è½ãªãã¸ã§ã¯ããç´æ¥å®ç¾©ã§ãã¾ãã
class Foo {
*[Symbol.iterator]() {
yield 1;
yield 2;
yield 3;
}
}
const someObj = {
*[Symbol.iterator]() {
yield "a";
yield "b";
},
};
console.log(...new Foo()); // 1, 2, 3
console.log(...someObj); // 'a', 'b'
éæ´å½¢å復å¦ç
ããå復å¯è½é
ç®ã® [Symbol.iterator]()
ã¡ã½ãããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ããªãå ´åãããã¯éæ´å½¢å復å¯è½é
ç®ã§ããããã使ç¨ããã¨ãå®è¡æã«ä¾å¤ãçºçãããããã°ãçºçãããããå¯è½æ§ãããã¾ãã
const nonWellFormedIterable = {};
nonWellFormedIterable[Symbol.iterator] = () => 1;
[...nonWellFormedIterable]; // TypeError: [Symbol.iterator]() returned a non-object value
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4