2017-02-24 87 views
0

因此,最终结果是我想要创建类似array[2][2][2]或更深的array[2][2][2][2][2]...(它们都将统一的长度大于1)。用于初始化多维数组的循环/递归方式

因此,每个阵列会比X长的多,深度最多n个

现在我有:

var array = new Array(2); //length of 2 is just an example 
 

 
for (let i = 0; i < array.length; i++) { 
 
    array[i] = new Array(2); 
 
} 
 

 
console.log(array);

我在想什么是:

function (length, depth) 
{ 
    //length determines how long each array will be (all arrays are same length) 
    //depth determines are far we go into it 
} 

所以这显然是我现在的代码,以x长度非常容易地收听二维数组。但如果我想深入一点,我想知道我应该怎么做。递归似乎是一条好路径,但目前无法想到如何做到这一点。

+0

请在你需要添加更多的细节 – Brijesh

+0

@Brijesh改成了一个片段,希望在执行console.log使事情更清晰 –

回答

1

您可以尝试递归:

function getNestedArray(depth, len) { 
 
    if (depth > 1) { 
 
    var a = []; 
 
    for (var i = 0; i < len; i++) { 
 
     a.push(getNestedArray(depth - 1, len)) 
 
    } 
 
    return a; 
 
    } else { 
 
    return new Array(len); 
 
    } 
 
} 
 

 
console.log(getNestedArray(5, 2)) 
 
console.log(getNestedArray(3, 4)) 
 
console.log(getNestedArray(2, 4))

+0

有点不太我需要的。我编辑了我的代码,因此它是一个片段。基本上我需要两个阵列的每个部分的长度。对不起,没有正确说明它 –

+0

长度在纵深上是否一致? – Rajesh

+0

是的,长度在深度 –