这是一个生成普通数组的生成器。创建多维数组的最快方法是什么?
let seq = [...makeSequence(100)];
* makeSequence(max) {
for (let i = 0; i < max; i++) {
yield i;
}
}
最佳答案
如果迭代器应该返回顶级元素(它们本身就是数组),那么您可以使用递归并支持任意深度的数组嵌套:
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);
关于javascript - 从 ES6 生成器创建多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47125126/