返回匹配object.date和求和object.value的对象数组[关闭]
Posted
技术标签:
【中文标题】返回匹配object.date和求和object.value的对象数组[关闭]【英文标题】:Return array of objects matching object.date and summing object.value [closed] 【发布时间】:2018-09-05 08:02:58 【问题描述】:返回匹配 object.date 和求和 object.value 的对象数组
[
【问题讨论】:
你的问题是什么? 【参考方案1】:要对按日期分组的值求和,您可以使用中间对象作为地图,然后对每个日期求和:
function sumValuesGroupByDate(input)
var dates = ;
input.forEach(dv => dates[dv.date] = ((dates[dv.date] || 0) + dv.value));
return Object.keys(dates).map(date => (date, value: dates[date]));
var input = [
date: "2017-07-10", value: 1, date: "2017-07-11", value: 3,
date: "2017-07-10", value: 5, date: "2017-07-11", value: 7
];
console.log(sumValuesGroupByDate(input));
如果您喜欢单行的原始 ES6 javascript 功能,那就是:
function sumValuesGroupByDate(input)
return Object.entries(input.reduce((dvs, date: d, value: v) => (...dvs, [d]: (dvs[d] || 0) + v), )).map(([date, value]) => (date, value));
var input = [
date: "2017-07-10", value: 1, date: "2017-07-11", value: 3,
date: "2017-07-10", value: 5, date: "2017-07-11", value: 7
];
console.log(sumValuesGroupByDate(input));
【讨论】:
很棒的答案!谢谢【参考方案2】:返回匹配日期值的对象数组:
const resultArray = array.filter(arrayItem => arrayItem.date === dateValue);
返回值的总和
const reducer = (summedValue, value) => summedValue + value;
const sum = array.reduce(reducer));
【讨论】:
以上是关于返回匹配object.date和求和object.value的对象数组[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Java2String/StringBuilder/ArrayList/Object/Date/Calendar/System/Math类/包装类,集合,泛型,内部类,练习题
IOS / Objective-C:核心数据NSPredicate使用IN不返回所有匹配