And*_*w88 1 javascript typescript lodash
我正在尝试使用 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);
Run Code Online (Sandbox Code Playgroud)
我想要一个这样的数组
[{id:1, name:'doc1'}, {id:2, name:'doc2'}, {id:3, name:'doc3'}, {id:4, name:'doc4'}]]
Run Code Online (Sandbox Code Playgroud)
但是使用 concat 函数,我获得了一个这样的数组:
[{ id: 1, name: 'doc1' }, { id: 1, name: 'doc1' }, { id: 2, name: 'doc2' }, { id: 3, name: 'doc3' }, { id: 4, name: 'doc4' }]]
Run Code Online (Sandbox Code Playgroud)
我想避免重复使用相同 id 的对象...我可以使用哪种运算符?
您可以使用merge和keyBylodash 函数获得结果。
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);Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1349 次 |
| 最近记录: |