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(...)
的效率较低,因为迭代器辅助方法是惰性的,并且避免创建临时数组。
规范
规范 |
---|
迭代器助手 # sec-iteratorprototype.toarray |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。