Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一维到二维数组javascript_Javascript_Arrays_Multidimensional Array_Format - Fatal编程技术网

一维到二维数组javascript

一维到二维数组javascript,javascript,arrays,multidimensional-array,format,Javascript,Arrays,Multidimensional Array,Format,首先,我有一个数组,如: 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] 如何尽可能轻松地将其恢复到原始格式?类似的内容,也许: var old = [];

首先,我有一个数组,如:

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]

如何尽可能轻松地将其恢复到原始格式?

类似的内容,也许:

var old = [];
for (var index = 0; index < arr.length; index+= 4)
    old.push( arr.slice(index, index + 4) );
var old=[];
对于(var指数=0;指数
对于大型数组,这是非常缓慢的,因为在JavaScript 1.6(可能是jQuery)中,为了好玩,每次都必须重新索引数组
arr.join().match(/\d+,\d+,\d+,\d+/g).map(函数){return s.split(,“”)
是否可以使用一种格式?节省了大量的循环。
var newArr = [];
while(arr.length){
    newArr.push(arr.splice(0,4));
}