联合数组如何只验证一个 属性

How union arrays with validate only one property

数组的连接。

我需要 运行 个 "Join Array" 个对象,但是,我需要删除重复的对象,请参阅:

例子

var objArray1 = [
    { Id: 1, Name: 'João', Order: 2 },
    { Id: 2, Name: 'Pedro', Order: 5 }
];

var objArray2 = [       
    { Id: 2, Name: 'Pedro', Order: 6 },
    { Id: 3, Name: 'Manoel', Order: 9 }
];

实际代码:

var result = _.union(objArray1,objArray2);  
=> [
    { Id: 1, Name: 'João', Order: 2 },
    { Id: 2, Name: 'Pedro', Order: 5 },
    { Id: 2, Name: 'Pedro', Order: 6 },
    { Id: 3, Name: 'Manoel', Order: 9 }
];

我需要这个结果:

[
    { Id: 1, Name: 'João', Order: 2 },
    { Id: 2, Name: 'Pedro', Order: 5 },
    { Id: 3, Name: 'Manoel', Order: 9 } 
];  

基本我需要用过滤器连接数组属性,我需要用 For 来实现,但我想要一个更好的解决方案

使用下划线unique函数如下

var result = _.uniq(_.union(objArray1, objArray2), false, function(item){ return item.Id; });

不能 100% 确定 false 是否应该是 true


或者,这似乎是 SO 上的一种趋势——性感的 ES2015 版本

var result = _.uniq(_.union(objArray1, objArray2), false, item => item.Id);