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