猿问

JavaScript按id合并对象

JavaScript按id合并对象

在Javascript中合并两个数组的正确方法是什么?

我有两个数组(例如):

var a1 = [{ id : 1, name : "test"}, { id : 2, name : "test2"}]var a2 = [{ id : 1, count : "1"}, {id : 2, count : "2"}]

我想以这样的方式结束:

var a3 = [{ id : 1, name : "test", count : "1"}, 
          { id : 2, name : "test2", count : "2"}]

其中两个数组是基于‘id’字段连接的,而额外的数据只是简单地添加。

我试着用_.union为此,它只是简单地将第二个数组中的值覆盖到第一个数组中。


Qyouu
浏览 655回答 3
3回答

泛舟湖上清波郎朗

ES6简化了这一点:let merge = (obj1, obj2) => ({...obj1, ...obj2});注意,重复的键将被合并,第二个对象的值将占上风,第一个对象的重复值将被忽略。.例子:let obj1 = {id: 1, uniqueObj1Key: "uniqueKeyValueObj1", repeatedKey: "obj1Val"}; let obj2 = {id: 1, uniqueObj2Key: "uniqueKeyValueObj2", repeatedKey: "obj2Val"}; merge(obj1, obj2)// {id: 1, uniqueObj1Key: "uniqueKeyValueObj1", repeatedKey: "obj2Val", uniqueObj2Key: "uniqueKeyValueObj2"}merge(obj2, obj1) // {id: 1, uniqueObj2Key: "uniqueKeyValueObj2", repeatedKey: "obj1Val", uniqueObj1Key: "uniqueKeyValueObj1"}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答