Iterator.prototype.toArray()
åºçº¿
2025
æè¿å¯ç¨
èª March 2025 èµ·ï¼æ¤ç¹æ§å·²å¨ææ°æµè§å¨ä¸å¾å°æ¯æãä½å¨è¾æ§çè®¾å¤ææµè§å¨ä¸å¯è½æ æ³è¿è¡ã
å®éªæ§: è¿æ¯ä¸é¡¹å®éªæ§ææ¯
å¨å°å
¶ç¨äºç产ä¹åï¼è¯·ä»ç»æ£æ¥æµè§å¨å
¼å®¹æ§è¡¨æ ¼ã
Iterator å®ä¾ç toArray() æ¹æ³å建ä¸ä¸ªæ°ç Array å®ä¾ï¼å¹¶å°è¿ä»£å¨çæçå
ç´ å¡«å
å°è¯¥å®ä¾ä¸ã
è¯æ³
toArray()
åæ°
æ ã
è¿åå¼
ä¸ä¸ªæ°ç Array å®ä¾ï¼å
¶ä¸å
å«è¿ä»£å¨çæçå
ç´ ï¼æçæé¡ºåºæåã
示ä¾
>ä½¿ç¨ toArray()
iterator.toArray() çä»·äº Array.from(iterator) å [...iterator]ï¼ä½å½æ¶åå¤ä¸ªè¿ä»£å¨è¾
婿¹æ³æ¶ï¼é¾å¼è°ç¨æ´å®¹æã以ä¸ç¤ºä¾å建ä¸ä¸ªçæææ³¢é£å¥æ°åçè¿ä»£å¨ï¼åå 10 个å
ç´ ï¼è¿æ»¤æå¥æ°ï¼å¹¶å°ç»æè½¬æ¢ä¸ºæ°ç»ï¼
function* fibonacci() {
let current = 1;
let next = 1;
while (true) {
yield current;
[current, next] = [next, current + next];
}
}
const array = fibonacci()
.take(10)
.filter((x) => x % 2 === 0)
.toArray();
console.log(array); // [2, 8, 34]
请注æï¼æå¥½å¨å¤ççæå䏿¥è°ç¨ toArray() ãä¾å¦ï¼fibonacci().take(10).toArray().filter(...) æçä¸é«ï¼å 为è¿ä»£å¨è¾
婿¹æ³æ¯æ°æ§çï¼è¿è½é¿å
åå»ºä¸´æ¶æ°ç»ã
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-iterator.prototype.toarray> |