我有一个包含某些重复属性的对象数组:以下是数组示例:
var jsonData = [{x:12, machine1: 7}, {x:15, machine2:7},{x:12, machine2: 8}];
所以我需要合并具有相同 x 值的对象,如下数组:
var jsonData = [{x:12, machine1:7, machine2:8}, {x:15, machine2:7}]
最佳答案
我喜欢 lodash 库。
https://lodash.com/docs#groupBy
_.groupBy(jsonData, 'x')
产生:
12: [ {x=12, machine1=7}, {x=12, machine2=8} ],
15: [ {x=15, machine2=7} ]
您想要的结果是这样实现的:
var jsonData = [{x:12, machine1: 7}, {x:15, machine2:7},{x:12, machine2: 8}];
var groupedByX = _.groupBy(jsonData, 'x');
var result = [];
_.forEach(groupedByX, function(value, key){
var obj = {};
for(var i=0; i<value.length; i++) {
_.defaults(obj, value[i]);
}
result.push(obj);
});
关于javascript - 查找数组中重复的对象值并将它们合并 - JAVASCRIPT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26665165/