假设我有6个数字数据点的数组,并且想将其更改为3个数据点的数组,其中每个点是2个点的总和如何使用underscore.js汇总数据点?
[1,1,1,1,1 ,1〜> [2,2,2]
什么是做到这一点与像underscore.js
假设我有6个数字数据点的数组,并且想将其更改为3个数据点的数组,其中每个点是2个点的总和如何使用underscore.js汇总数据点?
[1,1,1,1,1 ,1〜> [2,2,2]
什么是做到这一点与像underscore.js
图书馆,我发现一个方式的最佳途径。我会很乐意接受更好的解决方案。
values = [1,1,1,1,1,1];
reportingPeriod = 2;
var combined = [];
_.inject(values, function (total, value, index) {
if ((index + 1) % reportingPeriod === 0) {
combined.push(total + value);
return 0;
} else {
return total + value
}
}, 0);
如果你想要做一个通用的,功能性的方式,然后
function allowIndexes(idx) {
return function(item, index) {
return index % idx;
}
}
function sum() {
return _.reduce(_.toArray(arguments)[0], function(result, current) {
return result + current;
}, 0);
}
var isIndexOdd = allowIndexes(2);
var zipped = _.zip(_.reject(data, isIndexOdd), _.filter(data, isIndexOdd));
console.log(_.map(zipped, sum));
# [ 3, 7, 11 ]
但是,这将是没有在附近的
var result = [];
for (var i = 0; i < data.length; i += 2) {
result.push(data[i] + data[i + 1]);
}
console.log(result);
的性能使用lodash,你可以做到以下几点:
let arr = _.fill(Array(6), 1);
let reducer = (sum, num) => sum += num;
arr = _.chain(arr).chunk(2).map(arr => arr.reduce(reducer)).value();
哪2个老旧的po整数是应该总结的新点数? [0]映射到([0] + [1]),[1]映射到([2] + [3])等等? – Richard
是的 –