gpt4 book ai didi

javascript - Lodash - 如何根据键合并两个对象数组?

转载 作者:行者123 更新时间:2023-12-05 00:34:51 28 4
gpt4 key购买 nike

我正在尝试用 lodash 连接两个对象数组。我有这两个数组,我以这种方式使用 concat 运算符:

 var array1 = [{ id: 1, name: 'doc1' }, { id: 2, name: 'doc2' }];
var array2 = [{id:1, name:'doc1'}, {id:3, name:'doc3'}, {id:4, name:'doc4'}];

var array3 = _.concat(array1, array2);
我想要一个这样的数组
 [{id:1, name:'doc1'}, {id:2, name:'doc2'}, {id:3, name:'doc3'}, {id:4, name:'doc4'}]]
但是通过 concat 函数,我得到了一个这样的数组:
  [{ id: 1, name: 'doc1' }, { id: 1, name: 'doc1' }, { id: 2, name: 'doc2' }, { id: 3, name: 'doc3' }, { id: 4, name: 'doc4' }]]
我想避免重复具有相同 id 的对象...我可以使用哪种运算符?

最佳答案

您可以使用 merge 获得结果和 keyBy lodash 函数。

var array1 = [{id:1, name:'doc1'}, {id:2, name:'doc2'}];
var array2 = [{id:1, name:'doc1'}, {id:3, name:'doc3'}, {id:4, name:'doc4'}];

var merged = _.merge(_.keyBy(array1, 'id'), _.keyBy(array2, 'id'));
var values = _.values(merged);
console.log(values);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>

关于javascript - Lodash - 如何根据键合并两个对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64571246/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com