2011-05-03 86 views
1

首先我喜歡的數組:一維到二維陣列的javascript

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] 

如何儘可能簡單地恢復到原始格式?

+0

只是爲了在JavaScript 1.6(也許jQuery的)'arr.join()的比賽(FUN/\ d + \ d + \ d + \ d + /g).map(function(s){return s.split(「,」)})' – 2011-05-03 12:46:14

+0

使用一種格式不是可能嗎?節省了很多循環。 – Blaise 2013-01-10 14:04:50

回答

1

這樣的事情,也許是:

var old = []; 
for (var index = 0; index < arr.length; index+= 4) 
    old.push(arr.slice(index, index + 4)); 
2
var newArr = []; 
while(arr.length){ 
    newArr.push(arr.splice(0,4)); 
} 
+0

這對於大數組來說非常緩慢,因爲每次數組都必須重新編制索引 – bopjesvla 2011-05-03 11:39:23