javascript - 对象数组的 Lodash 联合

标签 javascript lodash

我想使用 _.union 函数创建两个对象数组的并集。 Union 仅适用于基元数组,因为它使用 === 来检查两个值是否相等。

我想比较使用键属性的对象:具有相同键属性的对象将被视为相等。有没有一种很好的功能性方法可以理想地使用 lodash 实现这一目标?

最佳答案

一个非纯粹的 lodash 方法来做到这一点,但使用 array.concat 函数,你可以沿着 uniq() 非常简单地做到这一点:

var objUnion = function(array1, array2, matcher) {
  var concated = array1.concat(array2)
  return _.uniq(concated, false, matcher);
}

另一种方法是使用 flatten()uniq() :

var union = _.uniq(_.flatten([array1, array2]), matcherFn);

关于javascript - 对象数组的 Lodash 联合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29320817/

相关文章:

javascript - 从 JavaScript 触发的 Bootstrap 下拉菜单切换不会始终保持打开状态

javascript - 有没有办法在x3dom中为形状添加轮廓

javascript - 更改 Highcharts 迷你图标记颜色

javascript - 如何在自定义选择组件中使用多个 v-model?

javascript - splinter 的视差卷轴

javascript - Js lodash 每次都返回相同的样本

lodash - _.isEqual 在没有差异时报告差异

javascript - 从另一个对象生成一个对象并保留一组键的最简洁方法?

javascript - lodash - 链接过滤器和 forEach

javascript - 如果值相等,如何使 lodash sortBy 不排序