【发布时间】:2021-01-11 20:46:51
【问题描述】:
我有两个对象数组。我的目标是根据“id”将第二个数组中的对象替换为第一个数组。我有一个可行的解决方案,但如果找不到值,我想通过将对象添加到第一个数组来扩展它。请指教。
function mergeById(arr) {
return {
with: function(arr2) {
return _.map(arr, item => {
return _.find(arr2, obj => obj.id === item.id) || item
})
}
}
}
var result = mergeById([{
id: '124',
name: 'qqq'
},
{
id: '589',
name: 'www'
},
{
id: '567',
name: 'rrr'
}
])
.with([{
id: '124',
name: 'ttt'
}, {
id: '45',
name: 'yyy'
}])
console.log(result);
/**
[
{
"id": "124",
"name": "ttt"
},
{
"id": "589",
"name": "www"
},
{
"id": "567",
"name": "rrr"
},
{
id: '45',
name: 'yyy'
}
]
**/
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>
请指教。
【问题讨论】:
标签: javascript arrays lodash