Javascript 如何仅验证一个属性的联合数组
阵列的连接 我需要运行“连接数组”对象,但我需要删除重复的对象,请参见: 范例Javascript 如何仅验证一个属性的联合数组,javascript,arrays,underscore.js,Javascript,Arrays,Underscore.js,阵列的连接 我需要运行“连接数组”对象,但我需要删除重复的对象,请参见: 范例 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 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连接,但我希望有更好的解决方案使用下划线
唯一
函数,如下所示
var result = _.uniq(_.union(objArray1, objArray2), false, function(item){ return item.Id; });
无法100%确定false
是否应为true
或者,就像流行趋势一样——性感的ES2015版
var result = _.uniq(_.union(objArray1, objArray2), false, item => item.Id);
顺序如何?两个数组都是按id排序的吗?结果是否应该保持顺序?您是否尝试在您的
\uuu.uniq
上使用\uu.uniq
?是的,这两个都是按顺序排列的ID@DjonatasTenfen补充回答,,请检查它是否有效…我认为您不应该传递true
,因为sorted
参数是偶然的-可能不会在其他数据集上工作。谢谢,看起来很棒。您甚至可以删除.uniq
的最后两个参数,并用字符串“Id”替换,例如.uniq(jarray1,objArray2),“Id')