所以,如果我有两个数组...
const arr1 = [ { id: 1: newBid: true } ];
const arr2 = [ { id: 1, newBid: false }, { id: 2, newBid: false } ];
我想结束一个像这样的数组
[ { id: 1, newBid: false }, { id: 2, newBid: false } ]
但是...我希望
{ id: 1, newBid: true }
来自arr1
而不是arr2
我使用的是Lodash
uniqBy(arr1, arr2, ['id'])
,但是它删除了第一个事件,而不是第二个事件 最佳答案
您应该使用lodash mergeWith
函数。
const arr1 = [{
id: 1,
newBid: true
}];
const arr2 = [{
id: 1,
newBid: false
}, {
id: 2,
newBid: false
}];
function customizer(firstValue, secondValue) {
if(firstValue)
return firstValue;
else
return secondValue;
}
console.log(_.mergeWith(arr1, arr2, customizer));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.js"></script>