这是一个创建普通数组的生成器。创建多维数组的最快方法是什么?
let seq = [...makeSequence(100)];
* makeSequence(max) {
for (let i = 0; i < max; i++) {
yield i;
}
}
答案 0 :(得分:0)
如果迭代器应该返回顶层元素(它们本身就是数组),那么你可以使用递归,因此支持任何深度的数组嵌套:
function * makeSequence(max, dimensionCount = 1) {
for (let i = 0; i < max; i++) {
yield dimensionCount <= 1 ? i : [...makeSequence(max, dimensionCount-1)];
}
}
let seq = [...makeSequence(5, 2)];
console.log(seq);