将数组拆分为N长度的块

时间:2012-07-03 20:27:43

标签: javascript arrays

如何将数组(包含10个项目)拆分为4个块,其中包含最多n项。

var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'];
//a function splits it to four arrays.
console.log(b, c, d, e);

它打印出来:

['a', 'b', 'c']
['d', 'e', 'f']
['j', 'h', 'i']
['j']

以上假设n = 3,但值应该是动态的。

由于

2 个答案:

答案 0 :(得分:178)

可能是这样的:

var arrays = [], size = 3;

while (a.length > 0)
    arrays.push(a.splice(0, size));

console.log(arrays);

参见splice Array的方法。

答案 1 :(得分:62)

也许这段代码有帮助:

var chunk_size = 10;
var arr = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17];
var groups = arr.map( function(e,i){ 
     return i%chunk_size===0 ? arr.slice(i,i+chunk_size) : null; 
}).filter(function(e){ return e; });
console.log({arr, groups})