繁体   English   中英

获取具有相同值的键集

[英]Get set of keys having same values

我有javascript对象数组:

objArray = [
  {"date":"07/19/2017 12:00:00 AM","count":"1000","code":"K100"},
  {"date":"07/21/2017 12:00:00 AM","count":"899","code":"C835"},
  {"date":"07/23/2017 12:00:00 AM","count":"700","code":"C837"},
  {"date":"07/23/2017 12:00:00 AM","count":"800","code":"K100"},
  {"date":"07/23/2017 12:00:00 AM","count":"50","code":"C837"}
];

我想获取关键日期的所有值,其值如下所示

  • 删除重复的日期值
  • 将代码值组合为数组
  • 汇总重复日期值的计数值

这是预期的输出:

newObjArray = [
  {"date":"07/19/2017 12:00:00 AM","count":"1000","code":"K100"},
  {"date":"07/21/2017 12:00:00 AM","count":"899","code":"C835"},
  {"date":"07/23/2017 12:00:00 AM","count":"1550","code":["C837","K100","C837"]}
]

我已经尝试过这种方法,但是可以获得预期的输出。 任何可以帮助我处理我以获得所需输出的人。

 objArray = [ {"date":"07/19/2017 12:00:00 AM","count":"1000","code":"K100"}, {"date":"07/21/2017 12:00:00 AM","count":"899","code":"C835"}, {"date":"07/23/2017 12:00:00 AM","count":"700","code":"C837"}, {"date":"07/23/2017 12:00:00 AM","count":"800","code":"K100"}, {"date":"07/23/2017 12:00:00 AM","count":"50","code":"C837"} ]; var objs = objArray.reduce((obj, rec) => { if (obj[rec.date] === undefined) { rec.code = [rec.code]; rec.count = Number(rec.count); obj[rec.date] = rec; } else { obj[rec.date].count += Number(rec.count); obj[rec.date].code.push(rec.code); } return obj; }, {}) console.log(Object.values(objs)); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM