Iterator.prototype.toArray()
語法
js
toArray()
引數
無。
返回值
一個包含迭代器元素的新 Array 例項,元素的順序與它們產生時的順序相同。
示例
使用 toArray()
iterator.toArray() 等價於 Array.from(iterator) 和 [...iterator],但當涉及多個迭代器輔助方法時,它更便於鏈式呼叫。以下示例建立了一個生成斐波那契數列的迭代器,取前 10 個數,過濾掉奇數,然後將結果轉換為一個數組。
js
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® 2026 語言規範 # sec-iterator.prototype.toarray |
瀏覽器相容性
載入中…