Baseline 2025
Newly available
å®éªæ§: è¿æ¯ä¸é¡¹å®éªæ§ææ¯
å¨å°å
¶ç¨äºç产ä¹åï¼è¯·ä»ç»æ£æ¥æµè§å¨å
¼å®¹æ§è¡¨æ ¼ã
Iterator
å®ä¾ç drop()
æ¹æ³è¿åä¸ä¸ªæ°çè¿ä»£å¨è¾
婿¹æ³ï¼è¯¥è¿ä»£å¨è¾
婿¹æ³ä¼è·³è¿æ¤è¿ä»£å¨çå¼å¤´çç»å®æ°éçå
ç´ ã
limit
è¦ä»è¿ä»£å¨çå¼å¤´ä¸¢å¼çå ç´ æ°éã
ä¸ä¸ªæ°çè¿ä»£å¨è¾
婿¹æ³ãç¬¬ä¸æ¬¡è°ç¨è¿åçè¿ä»£å¨è¾
婿¹æ³ç next()
æ¹æ³æ¶ï¼å½åè¿ä»£å¨ç«å³åè¿ limit
个å
ç´ ï¼ç¶åçæä¸ä¸ä¸ªå
ç´ ï¼å³ç¬¬ limit+1
个å
ç´ ï¼ãç¶åï¼è¿ä»£å¨è¾
婿¹æ³ä¼éä¸çæå©ä½å
ç´ ã妿å½åè¿ä»£å¨çå
ç´ æ°éå°äº limit
个ï¼é£ä¹æ°çæçè¿ä»£å¨è¾
婿¹æ³ä¼å¨ next()
æ¹æ³ç¬¬ä¸æ¬¡è°ç¨æ¶ç«å³å®æã
RangeError
妿 limit
转æ¢ä¸ºæ´æ°ååæ NaN
æè´æ°ï¼åæåºè¯¥å¼å¸¸ã
ä¸é¢ç示ä¾å建ä¸ä¸ªçæææ³¢é£å¥æ°åçè¿ä»£å¨ï¼å ¶ä¸¢å¼å两个å ç´ ï¼å¹¶ä»ç¬¬ 3 个å ç´ ä¹åçå ç´ å¼å§ï¼
function* fibonacci() {
let current = 1;
let next = 1;
while (true) {
yield current;
[current, next] = [next, current + next];
}
}
const seq = fibonacci().drop(2);
console.log(seq.next().value); // 2
console.log(seq.next().value); // 3
çä»·äºï¼
const seq = fibonacci();
seq.next();
seq.next();
å¨ for...of 循ç¯ä¸ä½¿ç¨ drop()
å½ä½ 䏿³æå¨å¿«è¿è¿ä»£å¨æ¶ï¼drop()
æ¯ææ¹ä¾¿çãå 为è¿ä»£å¨ä¹æ¯å¯è¿ä»£çï¼æä»¥ä½ å¯ä»¥ç¨ for...of
å¾ªç¯æ¥è¿ä»£è¿åçè¾
婿¹æ³ã
for (const n of fibonacci().drop(2)) {
console.log(n);
if (n > 30) {
break;
}
}
// è¾åºï¼
// 2
// 3
// 5
// 8
// 13
// 21
// 34
å° drop() ä¸ take() ç»å使ç¨
ä½ å¯ä»¥å° drop()
ä¸ Iterator.prototype.take()
ç»åä½¿ç¨æ¥è·åè¿ä»£å¨çåçï¼
for (const n of fibonacci().drop(2).take(5)) {
// 丢å¼ç¬¬ä¸ä¸ªå
ç´ ï¼ç¶å忥䏿¥çäºä¸ªå
ç´
console.log(n);
}
// è¾åºï¼
// 2
// 3
// 5
// 8
// 13
for (const n of fibonacci().take(5).drop(2)) {
// ååäºä¸ªå
ç´ ï¼ç¶å丢å¼å
¶ä¸çå两个å
ç´
console.log(n);
}
// è¾åºï¼
// 2
// 3
// 5
丢å¼å
ç´ æ°éçä¸éåä¸é
å½ limit
ä¸ºè´æ°æ NaN
æ¶ï¼ä¼æåº RangeError
å¼å¸¸ï¼
fibonacci().drop(-1); // RangeError: -1 must be positive
fibonacci().drop(undefined); // RangeError: undefined must be positive
å½ limit
大äºè¯¥è¿ä»£å¨å¯çæçå
ç´ æ»æ°æ¶ï¼æ¯å¦ Infinity
ï¼ï¼è¿åçè¿ä»£å¨è¾
婿¹æ³ä¼ç«å³ä¸¢å¼ææå
ç´ ï¼å¹¶å¨ç¬¬ä¸æ¬¡è°ç¨ next()
æ¶å®æã妿å½åè¿ä»£å¨æ¯æ éçï¼åè¿åçè¿ä»£å¨è¾
婿¹æ³æ°¸è¿ä¸ä¼å®æã
fibonacci().drop(Infinity).next(); // æ°¸è¿ä¸ä¼ç»æ
new Set([1, 2, 3]).values().drop(Infinity).next(); // { value: undefined, done: true }
new Set([1, 2, 3]).values().drop(4).next(); // { value: undefined, done: true }
è§è æµè§å¨å
¼å®¹æ§ åè§
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