javascript - 如何从两个数组中获取唯一的集合,通过键的值删除第二次出现的项目,而不是像 Lodash unique By 那样删除第一个项目?

标签 javascript typescript lodash

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

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>

关于javascript - 如何从两个数组中获取唯一的集合,通过键的值删除第二次出现的项目,而不是像 Lodash unique By 那样删除第一个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50650156/

相关文章:

javascript - 将 [op.and] 添加到 Sequelize 查询对象

javascript - 从可能包含函数的对象中获取扁平键

javascript - "' x'的含义不是函数或其返回值不可迭代”错误

Javascript:将数字保存到字符串后的变量

javascript - AngularJS:使用列表项作为单独列表的变量

javascript - 使用 Lodash 中其他两个 JSON 数组的所有组合标记数据项

javascript - Lodash _.remove() 和 _.pullAt() 之间的区别

javascript - 使用 PhoneGap/Cordova 时应用程序和服务器之间通信的最佳实践

javascript - es6可以导入commonjs模块吗?

javascript - 将剪贴板中的代码粘贴到多个输入字段中