所以,如果我有两个数组...

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>

10-06 12:23