Как я могу отразить многомерный массив в JavaScript? - PullRequest
5 голосов
/ 23 ноября 2011

Мне нужно иметь возможность зеркально отражать многомерный массив, который изменяется в размере. В настоящее время я жестко программирую для каждого конкретного размера массива, и это ужасно неэффективно.

Пример:

Arr1 { 1 2 3               Arr2 { 1 2
       4 5 6                      3 4
       7 8 9 }                    5 6 }

Зеркальный:

     { 3 2 1                    { 2 1
       6 5 4                      4 3
       9 8 7 }                    6 5 }

Размеры массивов варьируются от 2x5 до 4x10.

Ответы [ 2 ]

4 голосов
/ 23 ноября 2011

Хорошо, все, что вам нужно, это горизонтальное зеркало. Я полагаю, что ваш массив содержит массив для каждой строки, так что это означает, что вам просто нужно перевернуть каждую строку.

for(var i=0;i<multiarr.length;i++){
   multiarr[i].reverse();
}

или даже лучше

multiarr.map(function(arr){return arr.reverse();});
0 голосов
/ 23 ноября 2011
For each of the lines:
    For i = 0 to width/2:
        arr[line][i] <-> arr[line][width - i]

Разве это не должно работать?

...