javascript - 查找数组中重复的对象值并将它们合并 - JAVASCRIPT

标签 javascript arrays sorting duplicates

我有一个包含某些重复属性的对象数组:以下是数组示例:

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/

相关文章:

javascript - 为什么这个 MongoDB 错误函数不能正常工作?

javascript - 输入字段 - 千位 (1,000) 和小数 (.00) 的财务计算和逗号显示

node.js - MongoDB/ Mongoose 排序错误

html - 是否有 DRY 的 Flex 订购方式?

javascript - 禁用网页的浏览器缓存,不适用于 IE

javascript - 是否可以通过使用javascript获取数组中的一项来删除一项?

PHP - 数组的非标准排序

java - Int[] 的平均值;方法不返回

C程序打印奇怪的字符

Python同步读取排序文件