具有的联合数组如何仅验证一个属性

How union arrays with validate only one property

本文关键字:属性 一个 验证 何仅 数组      更新时间:2023-09-26

数组的联接。

我需要运行一个"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 } 
];  

基本上,我需要用filter连接数组。我需要的一个属性可以用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);