将数组拆分成N个长度的块

如何将数组(包含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 ,但是,该值应该是dynamic的。

谢谢

2 Solutions collect form web for “将数组拆分成N个长度的块”

这可能是这样的:

 var arrays = [], size = 3; while (a.length > 0) arrays.push(a.splice(0, size)); console.log(arrays); 

请参阅拼接arrays的方法。

也许这个代码有助于:

 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; }); 
  • numpy中的“isnotnan”function,这可以更pythonic?
  • 我不希望我的Excel加载项返回一个数组(而是我需要一个UDF来更改其他单元格)
  • 在范围(0 - X)内生成唯一编号,保留历史logging以防止重复
  • 如何在Java中使用toString方法将int数组转换为String
  • 为什么不是可变长度数组是C ++标准的一部分?
  • 如何将Javastring转换为ASCII字节数组?
  • 为什么是数组对象,但不能用作基类?
  • 混合数据types(int,float,char等)如何存储在数组中?
  • 在C中,是数组指针还是用作指针?
  • 按数值传递一个数组到一个函数
  • 基于范围的工作对于普通数组是如何工作的?