Iterator.prototype.toArray()

基準線 2025
新推出

自 ⁨2025 年 3 月⁩ 起,此功能可在最新的裝置和瀏覽器版本上使用。此功能可能在舊裝置或瀏覽器上無法正常工作。

toArray() 方法屬於 Iterator 例項,它會建立一個新的 Array 例項,該例項包含迭代器產生的元素。

語法

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

瀏覽器相容性

另見