2017-02-24 86 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

是的,長度在深度 –