关于如何将JavaScript 数组拆分为块有一个很好的问题。我目前正在将它用于我正在编写的一些统计方法,我正在使用的答案如下(尽管我选择不像他们在答案中那样扩展 Array 原型):
var chunk = function(array, chunkSize) {
return [].concat.apply([],
array.map(function(elem,i) {
return i%chunkSize ? [] : [array.slice(i,i+chunkSize)];
})
);
};
这需要一个数组,例如[1,2,3,4,5,6]
,并给定一个chunkSize
2 个返回[[1,2],[3,4],[5,6]]
。我很好奇如何修改它以创建一组“重叠”块(或者对于那些熟悉诸如移动平均线、“移动子组”等方法的人)。
提供与上面和 3 相同的数组chunkSize
,它将返回[[1,2,3],[2,3,4],[3,4,5],[4,5,6]]
. A chunkSize
of 2 将返回[[1,2],[2,3],[3,4],[4,5],[5,6]]
。
关于如何解决这个问题的任何想法?