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 |
浏览器兼容性
加载中…