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

时间:2016-01-06 12:30:05

标签: javascript arrays underscore.js

加入数组。

我需要运行“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但我想要一个更好的解决方案

1 个答案:

答案 0 :(得分:0)

使用下划线unique功能如下

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

不能100%确定falsetrue

或者,似乎是SO的趋势 - 性感的ES2015版本

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