2013-05-09 136 views
3

任何人都可以給我一個JavaScript的示例與多維輸入數組嗎?希望你能幫忙,因爲我還是JavaScript的新手。JavaScript在多維javascript數組中循環

像這樣:

var cubes = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]; 

output : [1,4,7], 
     [1,4,8], 
     [1,4,9], 
     [1,5,7], 
     [1,5,8], 
     [1,5,9], 
     [1,6,7], 
     [1,6,8], 
     [1,6,8], 
     ......... 
     ......... 
     [3,6,7], 
     [3,6,8], 
     [3,6,9] 

感謝

+2

你知道如何循環單個陣列? – phtrivier 2013-05-09 11:32:49

回答

3

此代碼應工作:

var cubes = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]; 

for(var i=0; i<cubes[0].length; ++i) 
for(var j=0; j<cubes[1].length; ++j) 
for(var k=0; k<cubes[2].length; ++k) { 
    alert([cubes[0][i],cubes[1][j],cubes[2][k]]); 
} 
+0

打我吧;) – Maloric 2013-05-09 11:51:57

+0

不幸的是,這個解決方案只適用於三維數組。但是,我找到了一種方法來循環使用任意數量的維數(這可能更有用):http://stackoverflow.com/a/15854485/975097 – 2013-07-20 22:17:18

1

這適用於給定的陣列,而是指如果你有三個以上的內部陣列,或更多的數組維度,那麼你將不得不手動編輯JavaScript。

$(document).ready(function(){ 
    var cubes = [[1, 2, 3],[4, 5, 6],[7, 8, 9]]; 
    var output = ""; 

    for(var a = 0; a < cubes[0].length; a++) 
    for(var b = 0; b < cubes[1].length; b++) 
    for(var c = 0; c < cubes[2].length; c++) { 
     output = output + [cubes[0][a],cubes[1][b],cubes[2][c]] + ",<br />"; 
    } 

    $('#output').html(output); 
}); 

工作例如:http://jsfiddle.net/HtSkd/