返回匹配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不返回所有匹配

mongoose 聚合和求和嵌套的 OBJECT (NOT ARRAY ) 字段

LeetCode--067--二进制求和

基于匹配值的雪花SQL计数和从另一个表求和

javascriptip学习第一课