mbe*_*ley 5 javascript arrays splice moving-average
关于如何将JavaScript 数组拆分为 chunks有一个很好的问题。我目前正在将它用于我正在编写的一些统计方法,我使用的答案如下(尽管我选择不像他们在答案中那样扩展 Array 原型):
var chunk = function(array, chunkSize) {
return [].concat.apply([],
array.map(function(elem,i) {
return i%chunkSize ? [] : [array.slice(i,i+chunkSize)];
})
);
};
Run Code Online (Sandbox Code Playgroud)
这需要一个数组,例如[1,2,3,4,5,6],并给定 a chunkSizeof 2 返回[[1,2],[3,4],[5,6]]。我很好奇如何修改它以创建一组“重叠”块(或者对于那些熟悉诸如移动平均线、“移动子组”等方法的人)。
提供与上述相同的数组和chunkSize3,它将返回[[1,2,3],[2,3,4],[3,4,5],[4,5,6]]. A chunkSizeof 2 将返回[[1,2],[2,3],[3,4],[4,5],[5,6]]。
关于如何解决这个问题的任何想法?
function chunk (array, chunkSize) {
var retArr = [];
for (var i = 0; i < array.length - (chunkSize - 1); i++) {
retArr.push(array.slice(i, i + chunkSize));
}
return retArr;
}
Run Code Online (Sandbox Code Playgroud)
如果您确实想扩展原型(可能会更好),它看起来像这样:
Array.prototype.chunk = function( chunkSize ) {
var retArr = [];
for (var i = 0; i < this.length - (chunkSize - 1); i++) {
retArr.push( this.slice(i, i + chunkSize));
}
return retArr;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
907 次 |
| 最近记录: |