Одномерный двухмерный массив javascript - PullRequest
1 голос
/ 03 мая 2011

Сначала у меня есть массив, подобный:

arr = [[r,g,b,a],[r,g,b,a],[r,g,b,a],[r,g,b,a],[r,g,b,a],[r,g,b,a]]

Я могу «сплющить» его, используя

arr = Array.prototype.concat.apply([],arr)

или с помощью цикла for-next и push.apply

Тогда я получил:

[r,g,b,a,r,g,b,a,r,g,b,a,r,g,b,a,r,g,b,a]

Как мне вернуть его в исходный формат как можно проще?

Ответы [ 2 ]

2 голосов
/ 03 мая 2011
var newArr = [];
while(arr.length){
    newArr.push(arr.splice(0,4));
}
1 голос
/ 03 мая 2011

Нечто подобное, возможно:

var old = [];
for (var index = 0; index < arr.length; index+= 4)
    old.push( arr.slice(index, index + 4) );
...