gpt4 book ai didi

javascript - 递归创建n级嵌套数组?

转载 作者:行者123 更新时间:2023-11-29 23:28:47 26 4
gpt4 key购买 nike

我想定义一个函数,该函数将创建一个 n 级深度的嵌套数组,每个 1 级数组中有 n 个元素。

因此,例如,下面的代码适用于 2 个级别:

 function genMatrix() {
const matrix = [];
let total = 0;
for(let i=0; i<2; i++) {
matrix[i] = [];
for(let j=0; j<2; j++) {
total++;
matrix[i][j] = total;
}
}
return matrix;
}

这将输出以下内容:[ [ 1, 2 ], [ 3, 4 ] ]

我知道我可以通过简单地添加更多嵌套循环来扩展同样的想法。但我想要一个函数来生成任何级别的类似数组。

是这样的:

function genMatrix(levels) {...返回矩阵}

我试图递归地做这个,但我没有走得太远:(

那么我该如何编写一个递归函数,以类似于上述示例的方式创建任意深度的数组?

最佳答案

这里是n级嵌套数组生成器:

function getMatrix(n) {
var total = 0, levels = n;
function genMatrix(n) {
var matrix = [];
for (var i = 0; i < levels; i++) {
matrix.push(n ? genMatrix(n - 1) : ++total);
}
return matrix;
}
return genMatrix(n)[0];
}

测试:

console.log(getMatrix(2));
// → [[1, 2], [3, 4]]

console.log(getMatrix(3));
// → [[[1, 2, 3], [4, 5, 6], [7, 8, 9]], [[10, 11, 12], [...], ...], ...]

关于javascript - 递归创建n级嵌套数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48066532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com