Baseline 2025
Newly available
Iterator()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¯ãã¤ãã¬ã¼ã¿ã¼ã使ããä»ã®ã¯ã©ã¹ã®ã¹ã¼ãã¼ã¯ã©ã¹ã¨ãã¦æå³éãã«ä½¿ç¨ããããã¨ãç®çã¨ãã¦ãã¾ããããèªä½ã§æ§ç¯ãããå ´åãã¨ã©ã¼ãçºçãã¾ãã
ã¡ã¢: Iterator()
㯠new
ã§ãã使ã§ãã¾ããã new
ã使ç¨ããã«åä»ãã㨠TypeError
ãçºçãã¾ããããã«ã Iterator()
ã¯å®éã«ã¯ããèªä½ã§ä½æãããã¨ã¯ã§ãã¾ãããé常ã¯ããµãã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã¼å
ã§ super()
ãå¼ã³åºããã¨ã§æé»çã«ä½æããã¾ãã
ãªãã
è¿å¤æ°ãã Iterator
ãªãã¸ã§ã¯ãã§ãã
TypeError
new.target
ã Iterator
颿°äºæ
ã«å¼ã³åºãããå ´åãã¤ã¾ãã Iterator
ã³ã³ã¹ãã©ã¯ã¿ã¼ããèªèº«ãæ§ç¯ãããå ´åã
Iterator
ã¯æ½è±¡ã¯ã©ã¹ã表ãã¾ããæ½è±¡ã¯ã©ã¹ã¨ã¯ããµãã¯ã©ã¹ã«å¯¾ãã¦æå®ãããå
±éã®ã¦ã¼ãã£ãªãã£ãæä¾ããã¯ã©ã¹ã§ãããããèªä½ãã¤ã³ã¹ã¿ã³ã¹åããããã¨ãæå³ãã¦ãã¾ãããããã¯ãä»ã«ãã¤ãã¬ã¼ã¿ã¼ã¯ã©ã¹ã®ã¹ã¼ãã¼ã¯ã©ã¹ã§ãããç¹å®ã®å復å¦çã¢ã«ã´ãªãºã ãå®è£
ãããµãã¯ã©ã¹ã使ããããã«ä½¿ç¨ããã¾ããã¤ã¾ãã Iterator
ã®ãã¹ã¦ã®ãµãã¯ã©ã¹ã¯ãã¤ãã¬ã¼ã¿ã¼ãããã³ã«ã§è¦æ±ãããããã«ã next()
ã¡ã½ãããå®è£
ããå¿
è¦ãããã¾ãã Iterator
ã¯å®éã«ã¯ next()
ã¡ã½ãããæä¾ãã¦ããªãããã Iterator
ãç´æ¥æ§ç¯ãããã¨ã¯æå³ãããã¾ããã
ã¾ãã Iterator.from()
ã使ç¨ãã¦ãæ¢åã®å復å¯è½ãªãã¸ã§ã¯ãã¾ãã¯ã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããã Iterator
ã®ã¤ã³ã¹ã¿ã³ã¹ã使ãããã¨ãã§ãã¾ãã
次ã®ä¾ã§ã¯ãå復å¦çãå¯è½ãªã«ã¹ã¿ã ãã¼ã¿æ§é ã§ãã Range
ãå®ç¾©ãã¦ãã¾ãããªãã¸ã§ã¯ããå復å¦çå¯è½ã«ããã«ã¯ãã¸ã§ãã¬ã¼ã¿ã¼é¢æ°ã¨ãã形㧠[Symbol.iterator]()
ã¡ã½ãããæä¾ãã¾ãã
class Range {
#start;
#end;
#step;
constructor(start, end, step = 1) {
this.#start = start;
this.#end = end;
this.#step = step;
}
*[Symbol.iterator]() {
for (let value = this.#start; value <= this.#end; value += this.#step) {
yield value;
}
}
}
const range = new Range(1, 5);
for (const num of range) {
console.log(num);
}
ããã¯ãã¾ãåä½ãã¾ãããçµã¿è¾¼ã¿ã®ã¤ãã¬ã¼ã¿ã¼ã®ä½æ¥æ¹æ³ã»ã©åªãã¦ã¯ãã¾ããã 2 ã¤ã®åé¡ãããã¾ãã
Generator
ãç¶æ¿ãã¦ããããã㯠Generator.prototype
ã¸ã®å¤æ´ãè¿ãããã¤ãã¬ã¼ã¿ã¼ã«å½±é¿ãããã¨ãæå³ãã¦ãããæ½è±¡åã®æ¼ãã§ããIterator
ããµãã¯ã©ã¹åãããã¨ã§ãçµã¿è¾¼ã¿ã®ã¤ãã¬ã¼ã¿ã¼ï¼ä¾ãã°ããããã®ã¤ãã¬ã¼ã¿ã¼ï¼ã®å®è£
ãæ¨¡å£ãããã¨ãã§ãã¾ããããã«ããã [Symbol.toStringTag]
ãªã©ã®è¿½å ã®ããããã£ãå®ç¾©ãããã¨ãã§ããè¿å¤ã®ã¤ãã¬ã¼ã¿ã¼ã«ããã¦ã¤ãã¬ã¼ã¿ã¼ã®ãã«ãã¼ã¡ã½ãããå©ç¨ã§ããããã«ãªãã¾ãã
class Range {
#start;
#end;
#step;
constructor(start, end, step = 1) {
this.#start = start;
this.#end = end;
this.#step = step;
}
static #RangeIterator = class extends Iterator {
#cur;
#s;
#e;
constructor(range) {
super();
this.#cur = range.#start;
this.#s = range.#step;
this.#e = range.#end;
}
static {
Object.defineProperty(this.prototype, Symbol.toStringTag, {
value: "Range Iterator",
configurable: true,
enumerable: false,
writable: false,
});
// Avoid #RangeIterator from being accessible outside
delete this.prototype.constructor;
}
next() {
if (this.#cur > this.#e) {
return { value: undefined, done: true };
}
const res = { value: this.#cur, done: false };
this.#cur += this.#s;
return res;
}
};
[Symbol.iterator]() {
return new Range.#RangeIterator(this);
}
}
const range = new Range(1, 5);
for (const num of range) {
console.log(num);
}
ãµãã¯ã©ã¹åãã¿ã¼ã³ã¯ã夿°ã®ç¬èªã®ã¤ãã¬ã¼ã¿ã¼ã使ãããå ´åã«ä¾¿å©ã§ãã Iterator
ãç¶æ¿ãã¦ããªãå復å¯è½ãªãã¸ã§ã¯ããã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããããããã®ãªãã¸ã§ã¯ãã«ã¤ãã¬ã¼ã¿ã¼ã®ãã«ãã¼ã¡ã½ãããå¼ã³åºãããã ãã®å ´åã Iterator.from()
ã使ç¨ãã¦ã䏿çã« Iterator
ã¤ã³ã¹ã¿ã³ã¹ã使ãããã¨ãã§ãã¾ãã
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