Цикл Javascript For в многомерном массиве 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]

Спасибо


person Kim Ki Heung    schedule 09.05.2013    source источник
comment
Вы знаете, как перебрать один массив?   -  person phtrivier    schedule 09.05.2013


Ответы (2)


Этот код должен работать:

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]]);
}
person Jan Turoň    schedule 09.05.2013
comment
К сожалению, это решение работает только для трехмерных массивов. Однако я нашел способ перебора массивов с любым количеством измерений (что может быть более полезным): stackoverflow.com/a /15854485/975097 - person Anderson Green; 21.07.2013

Это работает для данного массива, но означает, что если у вас более трех внутренних массивов или больше измерений массива, вам придется вручную редактировать 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/

person Maloric    schedule 09.05.2013