2013-05-09 140 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/