lov*_*job 0 javascript arrays reduce slice
我有一个数组:
var data = [0,1,2,3,4,5];
我想拼接成[0,1,2]和[3,4,5],随后通过取平均值所以最终的结果将是:
var dataOptimised = [1,4];
这是我到目前为止发现的:
function chunk (arr, len) {
var chunks = [];
var i = 0;
var n = arr.length;
while (i < n) {
chunks.push(arr.slice(i, i += len)); // gives [[0,1,2] [3,4,5]]
}
return chunks;
};
Run Code Online (Sandbox Code Playgroud)
如何减少它?
谢谢
使用每个块求和Array.reduce()并除以块的length.
var data = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30];
function chunkAverage(arr, len) {
var chunks = [];
var i = 0;
var n = arr.length;
var chunk;
while (i < n) {
chunk = arr.slice(i, i += len);
chunks.push(
chunk.reduce((s, n) => s + n) / chunk.length
);
}
return chunks;
};
console.log(chunkAverage(data, 3));Run Code Online (Sandbox Code Playgroud)