作者:黑色鲜花_866 | 来源:互联网 | 2023-01-28 17:48
我有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"]}
]
这是我尝试过的方式,但可以获得预期的输出.任何可以帮我处理我以获得所需输出的人.
例
1> Psidom..:
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));