Baseline Widely available *
Iterator
ãªãã¸ã§ã¯ãã¯ãã¤ãã¬ã¼ã¿ã¼ã®çµæãªãã¸ã§ã¯ããè¿ã next()
ã¡ã½ãããæä¾ãããã¨ã§ãã¤ãã¬ã¼ã¿ã¼ãããã³ã«ã«æºæ ãããªãã¸ã§ã¯ãã§ãããã¹ã¦ã®çµã¿è¾¼ã¿ã¤ãã¬ã¼ã¿ã¼ã¯ Iterator
ã¯ã©ã¹ãç¶æ¿ãã¦ãã¾ãã Iterator
ã¯ã©ã¹ã¯ã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ãèªèº«ãè¿ã [Symbol.iterator]()
ã¡ã½ãããæä¾ããã¤ãã¬ã¼ã¿ã¼ãå復å¯è½ã«ãã¦ãã¾ããã¾ããã¤ãã¬ã¼ã¿ã¼ãæä½ããããã®ãã«ãã¼ã¡ã½ãããããã¤ãæä¾ãã¦ãã¾ãã
以ä¸ã®ãã®ã¯ããã¹ã¦ JavaScript ã®çµã¿è¾¼ã¿ã¤ãã¬ã¼ã¿ã¼ã§ãã
Array.prototype.values()
ãArray.prototype.keys()
ãArray.prototype.entries()
ãArray.prototype[Symbol.iterator]()
ãTypedArray.prototype.values()
ãTypedArray.prototype.keys()
ãTypedArray.prototype.entries()
ãTypedArray.prototype[Symbol.iterator]()
ãarguments[Symbol.iterator]()
ã§è¿ããã¾ããString.prototype[Symbol.iterator]()
ã§è¿ããã¾ããMap.prototype.values()
ãMap.prototype.keys()
ãMap.prototype.entries()
ãMap.prototype[Symbol.iterator]()
ã§è¿ããã¾ããSet.prototype.values()
ãSet.prototype.keys()
ãSet.prototype.entries()
ãSet.prototype[Symbol.iterator]()
ã§è¿ããã¾ããRegExp.prototype[Symbol.matchAll]()
ãString.prototype.matchAll()
ã§è¿ããã¾ããGenerator
ãªãã¸ã§ã¯ã: ã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ã§è¿ããã¾ããIntl.Segmenter.prototype.segment()
ã§è¿ããã Segments
ãªãã¸ã§ã¯ãã® [Symbol.iterator]()
ã¡ã½ããã§è¿ããã¾ããIterator.prototype.filter()
ã Iterator.prototype.map()
ãªã©ã®ã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ã¡ã½ããã§è¿ããã¾ããWeb API ã¯ã¤ãã¬ã¼ã¿ã¼ãè¿ããã¨ãããã¾ãã JavaScript ã®ã³ã¢ã®ã¤ãã¬ã¼ã¿ã¼ãåå©ç¨ãããã®ãããã°ãèªåèªèº«ã§ã¤ãã¬ã¼ã¿ã¼ãå®ç¾©ãããã®ãããã¾ãã ä¾ã示ãã¾ãã
NodeList
ãªã©ï¼ã¯ãé
åã¤ãã¬ã¼ã¿ã¼ã keys()
ãvalues()
ãentries()
ã[Symbol.iterator]()
ã¡ã½ããããããã§è¿ãã¾ããHeaders
ã¯ãç¬èªã®ã¤ãã¬ã¼ã¿ã¼åï¼Headers ã¤ãã¬ã¼ã¿ã¼ãªã©ï¼ã keys()
ãvalues()
ãentries()
ã[Symbol.iterator]()
ã¡ã½ããããããã§è¿ãã¾ããFontFaceSet
ã¯ãç¬èªã®ã¤ãã¬ã¼ã¿ã¼åï¼FontFaceSet ã¤ãã¬ã¼ã¿ã¼ãªã©ï¼ã keys()
ãvalues()
ãentries()
ã[Symbol.iterator]()
ã¡ã½ããããããã§è¿ãã¾ããã¡ã¢: NodeIterator
ããã®ä»ã®å¤ãã¤ã³ã¿ã¼ãã§ã¤ã¹ã¯ãã®ãããªååãä»ãã¦ãã¾ãããã¤ãã¬ã¼ã¿ã¼ãããã³ã«ãå復å¯è½ãããã³ã«ã«ã¯é©åãã¦ãã¾ããã
ãããã®ã¤ãã¬ã¼ã¿ã¼ã¯ããããåå¥ã®ãããã¿ã¤ããªãã¸ã§ã¯ããæã£ã¦ãããç¹å®ã®ã¤ãã¬ã¼ã¿ã¼ã使ç¨ãã next()
ã¡ã½ãããå®ç¾©ãã¦ãã¾ããä¾ãã°ããã¹ã¦ã® String ã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ãã¯ãé ããªãã¸ã§ã¯ãã§ãã StringIteratorPrototype
ãç¶æ¿ãã¦ããããã®ãªãã¸ã§ã¯ãã¯ããã®æååãã³ã¼ããã¤ã³ããã¨ã«å復å¦çãã next()
ã¡ã½ãããæã£ã¦ãã¾ããã¾ãã StringIteratorPrototype
㯠[Symbol.toStringTag]
ããããã£ãæã£ã¦ãããåæå¤ã¯æåå "String Iterator"
ã¨ãªãã¾ãããã®ããããã£ã¯ Object.prototype.toString()
ã§ä½¿ç¨ãã¾ããåæ§ã«ãä»ã®ã¤ãã¬ã¼ã¿ã¼ãããã¿ã¤ããèªåèªèº«ã§ [Symbol.toStringTag]
ã®å¤ãæã¡ãããã¯ä¸ã§æå®ãããååã¨åãã§ãã
ãããã®ãããã¿ã¤ããªãã¸ã§ã¯ãã¯ãã¹ã¦ Iterator.prototype
ãç¶æ¿ãã¦ãããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ãèªèº«ãè¿ã [Symbol.iterator]()
ã¡ã½ãããæä¾ããã¤ãã¬ã¼ã¿ã¼ãå復å¯è½ã«ããã¦ãã¾ãã
ã¡ã¢: ãããã®ã¡ã½ããã¯ãã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ã§ãããå復å¦çå¯è½ãªãã¸ã§ã¯ããã«ãã¼ã§ã¯ããã¾ãããå復å¦çå¯è½ãªãã¸ã§ã¯ãã§ããããã«è¦æ±ãããã®ã¯ã[Symbol.iterator]()
ã¡ã½ãããåå¨ãããã¨ã ãã ããã§ãããããã®ã¡ã½ãããã¤ã³ã¹ãã¼ã«ããããã®å
±æãããã¿ã¤ãã¯ããã¾ããã
Iterator
ã¯ã©ã¹èªä½ã¯ãã¤ãã¬ã¼ã¿ã¼ãæ±ãããã®ããã¤ãã®ãã«ãã¼ã¡ã½ãããæä¾ãã¦ãã¾ããä¾ãã°ã次ã®ãããªãã¨ãããããªãããããã¾ããã
const nameToDeposit = new Map([
["Anne", 1000],
["Bert", 1500],
["Carl", 2000],
]);
const totalDeposit = [...nameToDeposit.values()].reduce((a, b) => a + b);
ããã¯ãæåã« Map.prototype.values()
ãè¿ãã¤ãã¬ã¼ã¿ã¼ãé
åã«å¤æããæ¬¡ã« Array.prototype.reduce()
ã¡ã½ããã使ç¨ãã¦åè¨ãè¨ç®ãã¾ããããããããã¯ã©ã¡ããä¸éé
åã使ãããã®é
åã 2 åå復å¦çãã¾ãã代ããã«ãã¤ãã¬ã¼ã¿ã¼èªä½ã® reduce()
ã¡ã½ããã使ç¨ãããã¨ãã§ãã¾ãã
const totalDeposit = nameToDeposit.values().reduce((a, b) => a + b);
ãã®ã¡ã½ããã¯ãç¹ã«ã¡ã¢ãªã¼å¹çã®é¢ã§ããå¹ççããããã¾ããããªããªããä¸éå¤ãè¨æ¶ãããã¨ãªããã¤ãã¬ã¼ã¿ã¼ã1度ã ãå復å¦çããã ãã ããã§ããç¡éã¤ãã¬ã¼ã¿ã¼ã§ä½æ¥ããã«ã¯ãã¤ãã¬ã¼ã¿ã¼ã®ãã«ãã¼ã¡ã½ãããå¿ è¦ã§ãã
function* fibonacci() {
let current = 1;
let next = 1;
while (true) {
yield current;
[current, next] = [next, current + next];
}
}
const seq = fibonacci();
const firstThreeDigitTerm = seq.find((n) => n >= 100);
seq
ã¯ç¡éã§ãããããé
åã«å¤æãããã¨ã¯ã§ãã¾ããããã®ä»£ãããã¤ãã¬ã¼ã¿ã¼èªä½ã® find()
ã¡ã½ããã使ç¨ãããã¨ãã§ãã¾ãããã®ã¡ã½ããã¯ãæ¡ä»¶ãæºããæåã®å¤ãè¦ã¤ããããã«å¿
è¦ãªç¯å²ã§ seq
ãå復å¦çãã¾ãã
次ã®ããã«ãé åã®ã¡ã½ããã«é¡ä¼¼ããå¤ãã®ã¤ãã¬ã¼ã¿ã¼ã®ã¡ã½ãããè¦ã¤ããã¾ãã
Iterator.prototype.drop()
㨠Iterator.prototype.take()
ãçµã¿åãããã¨ã Array.prototype.slice()
ã«ä¼¼ããã®ã«ãªãã¾ãã
ã¡ã¢: ãã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãªãã¸ã§ã¯ããã¨ãã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ã¡ã½ãããã¯ã 2 ã¤ã®ç°ãªãæ¦å¿µã§ããã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãªãã¸ã§ã¯ãã¯å®è¡æã«æ¤åºå¯è½ã§ããããã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ã¡ã½ãããã¯ãçè§£ãå©ããããã®ä¸é£ã®ã¡ã½ããã®ååã«ããã¾ããããã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãã¯ãã³ã³ããã¹ãã«å¿ãã¦ããªãã¸ã§ã¯ãã¾ãã¯ã¡ã½ããã®ã©ã¡ãããæãå ´åãããã¾ãã
ã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ã¡ã½ããã®ãã¡ãfilter()
ãflatMap()
ãmap()
ãdrop()
ãtake()
ã¯ãæ°ããã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã ã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ã¯ã Iterator
ã®ã¤ã³ã¹ã¿ã³ã¹ã§ãããããããã®ãã«ãã¼ã¡ã½ãããé£çµå¯è½ã«ãã¾ãã ã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãªãã¸ã§ã¯ãã¯ãã¹ã¦ãã¤ãã¬ã¼ã¿ã¼ãããã³ã«ãå®è£
ããå
±éã®ãããã¿ã¤ããªãã¸ã§ã¯ããç¶æ¿ãã¦ãã¾ãã
next()
åºç¤ã¨ãªãã¤ãã¬ã¼ã¿ã¼ã® next()
ã¡ã½ãããå¼ã³åºããçµæã«ãã«ãã¼ã¡ã½ãããé©ç¨ããçµæãè¿ãã¾ãã
return()
åºã«ãªãã¤ãã¬ã¼ã¿ã¼ã® return()
ã¡ã½ãããå¼ã³åºããçµæãè¿ãã¾ãã
ã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ã¯ãåºç¤ã¨ãªãã¤ãã¬ã¼ã¿ã¼ã¨åããã¼ã¿ã½ã¼ã¹ãå ±æãã¦ãããããã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãå復å¦çããã¨ãåºç¤ã¨ãªãã¤ãã¬ã¼ã¿ã¼ãå復å¦çããã¾ããã¤ãã¬ã¼ã¿ã¼ãããã©ã¼ã¯ããã¦ãå復å¦çãè¤æ°åã§ããããã«ããæ¹æ³ã¯ããã¾ããã
const it = [1, 2, 3].values();
const it2 = it.drop(0); // åºæ¬çã«ã¯ã³ãã¼
console.log(it.next().value); // 1
console.log(it2.next().value); // 2
console.log(it.next().value); // 3
æ£è¦ã¤ãã¬ã¼ã¿ã¼
ãã¤ãã¬ã¼ã¿ã¼ãã«ã¯ 2 種é¡ããã¾ããã¤ãã¬ã¼ã¿ã¼ãããã³ã«ã«é©åãããªãã¸ã§ã¯ãï¼æå°éã next()
ã¡ã½ããã®åå¨ã®ã¿ãè¦æ±ããã¾ãï¼ã¨ããã«ãã¼ã¡ã½ãããå©ç¨ã§ãã Iterator
ã¯ã©ã¹ãç¶æ¿ãããªãã¸ã§ã¯ãã§ãããããã¯äºãã«å¿
è¦æ¡ä»¶ã§ã¯ããã¾ããã Iterator
ã¯ã©ã¹ã¯ next()
ã¡ã½ãããå®ç¾©ãã¦ããªãããã Iterator
ãç¶æ¿ãããªãã¸ã§ã¯ãã¯èªåçã«ã¤ãã¬ã¼ã¿ã¼ã«ãªãããã§ã¯ããã¾ããã代ããã«ããªãã¸ã§ã¯ã㯠next()
ã¡ã½ãããèªèº«ã§å®ç¾©ããå¿
è¦ãããã¾ããæ£è¦ã¤ãã¬ã¼ã¿ã¼ã¨ã¯ãã¤ãã¬ã¼ã¿ã¼ãããã³ã«ã«é©åãã Iterator
ãç¶æ¿ãããã®ãæãã¾ããã»ã¨ãã©ã®ã³ã¼ãã§ã¯ãã¤ãã¬ã¼ã¿ã¼ã¯æ£è¦ã¤ãã¬ã¼ã¿ã¼ã§ãããã¨ãåæã¨ããå復å¯è½ãªãã¸ã§ã¯ãã¯æ£è¦ã¤ãã¬ã¼ã¿ã¼ãè¿ããã¨ãåæã¨ãã¦ãã¾ããæ£è¦ã¤ãã¬ã¼ã¿ã¼ã使ããã«ã¯ã Iterator
ãç¶æ¿ããã¯ã©ã¹ãå®ç¾©ãããã Iterator.from()
ã¡ã½ããã使ç¨ããããã¦ãã ããã
class MyIterator extends Iterator {
next() {
// â¦
}
}
const myIterator = Iterator.from({
next() {
// â¦
},
});
ã³ã³ã¹ãã©ã¯ã¿ã¼
Iterator()
ã¤ãã¬ã¼ã¿ã¼ã使ããä»ã®ã¯ã©ã¹ã«ãã£ã¦ç¶æ¿ããããã®ãã®ã§ããåç¬ã§ä½æãããå ´åã¯ã¨ã©ã¼ãçºçãã¾ãã
Iterator.from()
ã¤ãã¬ã¼ã¿ã¼ã¾ãã¯å復å¯è½ãªãã¸ã§ã¯ããããæ°ããIterator
ãªãã¸ã§ã¯ãã使ãã¾ãã
ãããã®ããããã£ã¯ Iterator.prototype
ã§å®ç¾©ããããã¹ã¦ã® Iterator
ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¾ãã
Iterator.prototype.constructor
ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãã使ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ãã Iterator
ã¤ã³ã¹ã¿ã³ã¹ã®å ´åãåæå¤ã¯ Iterator
ã³ã³ã¹ãã©ã¯ã¿ã¼ã§ãã
Iterator.prototype[Symbol.toStringTag]
[Symbol.toStringTag]
ããããã£ã®åæå¤ã¯æåå "Iterator"
ã§ãããã®ããããã£ã¯ Object.prototype.toString()
ã§ä½¿ç¨ããã¾ãã
ã¡ã¢: ã¦ã§ãã®äºææ§ã®ãããå¤ãã®çµã¿è¾¼ã¿ã¯ã©ã¹ã® [Symbol.toStringTag]
ã¨ã¯ç°ãªãã Iterator.prototype[Symbol.toStringTag]
ã¯æ¸ãè¾¼ã¿å¯è½ã§ãã
Iterator.prototype.drop()
ãã®ã¤ãã¬ã¼ã¿ã¼ã®éå§ä½ç½®ã§æå®ãããè¦ç´ æ°ãã¹ããããããæ°ããã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
Iterator.prototype.every()
ã¤ãã¬ã¼ã¿ã¼ã«ãã£ã¦çæããããã¹ã¦ã®è¦ç´ ããæå®ããã颿°ã§å®è£ ãã¦ãããã¹ãã«åæ ¼ãããã©ããããã¹ããã¾ãã
Iterator.prototype.filter()
æ°ããã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãªãã¸ã§ã¯ããè¿ãã¾ãããã®ãªãã¸ã§ã¯ãã¯ãæå®ãããã³ã¼ã«ããã¯é¢æ°ã true
ãè¿ãã¤ãã¬ã¼ã¿ã¼ã®è¦ç´ ã®ã¿ãçæãã¾ãã
Iterator.prototype.find()
ã¤ãã¬ã¼ã¿ã¼ãçæããæåã®è¦ç´ ãè¿ãã¾ããæå®ããããã¹ã颿°ãæºããå¤ããªãå ´åã¯ãè¿å¤ã¯ undefined
ã¨ãªãã¾ãã
Iterator.prototype.flatMap()
å ã®ã¤ãã¬ã¼ã¿ã¼ã®åè¦ç´ ãåãããããï¼å¥ã®ã¤ãã¬ã¼ã¿ã¼ã¾ãã¯å復å¯è½ãªãã¸ã§ã¯ãã«å«ã¾ãã¦ããï¼ãããã³ã°é¢æ°ã«éãããããã³ã°é¢æ°ããè¿ãããè¦ç´ ãçæããæ°ããã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
Iterator.prototype.forEach()
ãã®ã¤ãã¬ã¼ã¿ã¼ã«ãã£ã¦çæãããåè¦ç´ ã«å¯¾ãã¦ãæå®ããã颿°ãä¸åº¦ãã¤ã ãå®è¡ãã¾ãã
Iterator.prototype.map()
æ°ããã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãªãã¸ã§ã¯ããè¿ãã¾ãããã®ãªãã¸ã§ã¯ãã¯ããããã³ã°é¢æ°ã«ãã£ã¦å¤æãããã¤ãã¬ã¼ã¿ã¼ã®è¦ç´ ãå復å¦çãã¾ãã
Iterator.prototype.reduce()
ã¤ãã¬ã¼ã¿ã¼ã«ãã£ã¦çæãããåè¦ç´ ã«å¯¾ãã¦ãã¦ã¼ã¶ã¼ãæå®ããã縮ç´ãã³ã¼ã«ããã¯é¢æ°ãå®è¡ããåã®è¦ç´ ã®è¨ç®ã®è¿å¤ã渡ãã¾ãããã¹ã¦ã®è¦ç´ ã«å¯¾ãã¦ç¸®ç´ãå®è¡ããæçµçµæã¯ãåä¸ã®å¤ã¨ãªãã¾ãã
Iterator.prototype.some()
ã¤ãã¬ã¼ã¿å ã®å°ãªãã¨ã 1 ã¤ã®è¦ç´ ããæå®ããã颿°ã§å®è£ ããã¦ãããã¹ãã«åæ ¼ãã¦ãããã©ãããå¤å®ãã¾ããè«çå¤ãè¿ãã¾ãã
Iterator.prototype.take()
ãã®ã¤ãã¬ã¼ã¿ã¼ã§æå®ãããæ°ã®è¦ç´ ãå復å¦çãããã®å¾çµäºããæ°ããã¤ãã¬ã¼ã¿ã¼ãã«ãã¼ãªãã¸ã§ã¯ããè¿ãã¾ãã
Iterator.prototype.toArray()
ã¤ãã¬ã¼ã¿ã¼ããå復å¦çãããè¦ç´ ã§æºããããæ°ããé
åã¤ã³ã¹ã¿ã³ã¹ (Array
) ã使ãã¾ãã
Iterator.prototype[Symbol.iterator]()
ã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ãèªèº«ãè¿ãã¾ããããã«ãããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããå復å¯è½ã«ããªãã¾ãã
ãã¹ã¦ã®çµã¿è¾¼ã¿ã¤ãã¬ã¼ã¿ã¼ã¯å復å¯è½ã§ãããã®ã§ãfor...of
ã«ã¼ãã®ä¸ã§ä½¿ããã¨ãã§ãã¾ãã
const arrIterator = [1, 2, 3].values();
for (const value of arrIterator) {
console.log(value);
}
// Logs: 1, 2, 3
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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