【发布时间】:2022-09-23 02:04:02
【问题描述】:
如果另一个对象中存在多个相同的字段,我正在尝试合并重复值。
在下面的示例中 - 我有多个相同的对象资产ID和事件代码这是重复的,所以我需要保留一个并合并它们价值.我试图这样做,但没有得到正确的解决方案和相同的输出。
const transaction = [{
value: 5,
asset_id: \'ABC\',
event_code : 1
}, {
value: 15,
asset_id: \'HGF\',
event_code : 1
}, {
value: 15,
asset_id: \'XYZ\',
event_code : 2
}, {
value: 20,
asset_id: \'XYZ\',
event_code : 2
}, {
value: 25,
asset_id: \'DEF\',
event_code : 3
}, {
value: 20,
asset_id: \'HGF\',
event_code : 3
}, {
value: 20,
asset_id: \'HGF\',
event_code : 3
},
{
value: 10,
asset_id: \'ABC\',
event_code : 1
}];
let newArr = [];
transaction.forEach(function (obj, ind, arr) {
if (ind === arr.length - 1 || obj.asset_id !== arr[ind + 1].asset_id && obj.event_code!== arr[ind + 1].event_code) {
newArr.push(obj);
} else {
arr[ind + 1].value+= obj.value;
}
});
console.log(newArr)
预期输出应该是这样的:
[{
value: 15,
asset_id: \'ABC\',
event_code: 1
}, {
value: 15,
asset_id: \'HGF\',
event_code: 1
}, {
value: 35,
asset_id: \'XYZ\',
event_code: 2
} {
value: 25,
asset_id: \'DEF\',
event_code: 3
}, {
value: 40,
asset_id: \'HGF\',
event_code: 3
}]
标签: javascript node.js arrays