Jan*_*nos 13 javascript lodash
我想使用该_.union函数创建两个对象数组的并集.Union仅使用基元数组,因为它使用===来检查两个值是否相等.
我想使用键属性比较对象:具有相同键属性的对象将被视为相等.是否有一个很好的功能方式来实现理想的使用lodash?
Cra*_*nec 14
一个非纯粹的lodash方法,但使用array.concat函数你可以做到这一点非常简单uniq():
var objUnion = function(array1, array2, matcher) {
var concated = array1.concat(array2)
return _.uniq(concated, false, matcher);
}
Run Code Online (Sandbox Code Playgroud)
var union = _.uniq(_.flatten([array1, array2]), matcherFn);
Run Code Online (Sandbox Code Playgroud)
ala*_*udi 10
聚会晚了,但是_.unionWith在做您想要的事情上要好得多。
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
_.unionWith(objects, others, _.isEqual);
// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]
Run Code Online (Sandbox Code Playgroud)