在工作期间,我对此任务有疑问,这是我的数据:
var order = [
{area: "RFCC",ru: "R401",tot: 3,unit: "OFFSITE"},
{area: "RFCC",ru: "R401",tot: 1,unit: "RCU"}];
我希望结果应该是这样的:
var order = [
{area:["RFCC","RFCC"],ru:["R401","R401"],tot:[4],unit:["OFFSITE","RCU"]}]
有人知道解决方案吗?提前致谢。
最佳答案
您可以通过以下方法使用Array#reduce()
实现此目的:
var order = [
{area: "RFCC",ru: "R401",tot: 3,unit: "OFFSITE"},
{area: "RFCC",ru: "R401",tot: 1,unit: "RCU"}
];
var result = order.reduce((result, item) => {
const { area, ru, tot, unit } = result[0]
area.push( item.area );
ru.push( item.ru );
unit.push( item.unit );
tot[0] = parseInt(tot[0]) + parseInt(item.tot);
return result
}, [{ area : [], ru : [], tot: [ 0 ], unit : [] }])
console.log(result);
关于javascript - 按相似数据分组,但保留键和值javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53255827/