Iterator.prototype.toArray()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
構文
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(...)
は効率が悪いです。なぜなら、反復処理ヘルパーは遅延され、一時的な配列の作成を避けるからです。
仕様書
Specification |
---|
Iterator Helpers # sec-iteratorprototype.toarray |
ブラウザーの互換性
BCD tables only load in the browser