📅  最后修改于: 2023-12-03 15:24:43.264000             🧑  作者: Mango
在 JavaScript 中,迭代器是一种迭代数据结构的通用方式。迭代器使用 next()
方法来访问每个数据项并返回它们的值。但是,有时候我们需要将迭代器转换为数组以便对其进行操作。本文将介绍如何将 JavaScript 迭代器转换为数组。
使用扩展运算符是将迭代器转换为数组的最简单方法。扩展运算符可以将可迭代对象展开为单独的元素,并创建一个新的数组。下面是一个例子:
const myIterator = {
arr: [1, 2, 3],
next() {
if (this.arr.length == 0) {
return { done: true };
} else {
return { value: this.arr.shift(), done: false };
}
}
};
const myArray = [...myIterator];
console.log(myArray); // output: [1, 2, 3]
使用 Array.from()
方法也可以将迭代器转换为数组。Array.from()
方法从一个类数组或可迭代对象中创建一个新的数组实例。下面是一个例子:
const myIterator = {
arr: [1, 2, 3],
next() {
if (this.arr.length == 0) {
return { done: true };
} else {
return { value: this.arr.shift(), done: false };
}
}
};
const myArray = Array.from(myIterator);
console.log(myArray); // output: [1, 2, 3]
除了上述两种方法之外,我们还可以手动将迭代器转换为数组。我们可以创建一个空数组,并使用 for...of
循环迭代器来手动将其添加到数组中。下面是一个例子:
const myIterator = {
arr: [1, 2, 3],
next() {
if (this.arr.length == 0) {
return { done: true };
} else {
return { value: this.arr.shift(), done: false };
}
}
};
const myArray = [];
for (const value of myIterator) {
myArray.push(value);
}
console.log(myArray); // output: [1, 2, 3]
以上是将 JavaScript 迭代器转换为数组的三种方法。使用扩展运算符是最简单的方法,但是需要 ES6 的支持。使用 Array.from()
方法也是一个不错的选择,适用于所有主流浏览器。如果以上两种方法不符合需求,我们可以手动将迭代器转换为数组。