Javascript 检查数组中的对象属性是否与具有相同ID的另一个对象重复
我有这样一个数组:Javascript 检查数组中的对象属性是否与具有相同ID的另一个对象重复,javascript,jquery,Javascript,Jquery,我有这样一个数组: var arr = [ {z: '1', val: 'duplicate'}, {z: '1', val: 'duplicate'}, {z: '2', val: 'test'}, {z: '1', val: 'duplicate'}, {z: '2', val: 'test2'} ]; 我需要一个函数来确定具有相同id的对象的属性“val”是否存在任何重复值 因此,在本例中,函数将返回索引0、1和3是重复的。一个简单的解决方案是迭代
var arr = [
{z: '1', val: 'duplicate'},
{z: '1', val: 'duplicate'},
{z: '2', val: 'test'},
{z: '1', val: 'duplicate'},
{z: '2', val: 'test2'}
];
我需要一个函数来确定具有相同id的对象的属性“val”是否存在任何重复值
因此,在本例中,函数将返回索引0、1和3是重复的。一个简单的解决方案是迭代数组并记录重复项。这是一个天真的解决方案。我相信你能做得更好
功能DUP(arr){
var-map={},
结果=[],
el;
//保存所有元素的地图并记录事件索引
对于(变量i=0;i1){
结果=结果.concat(映射[key].dups)
}
}
返回结果
}
拥有重复的ID违背了将其称为ID的目的。var sorted=arr.sort();var结果=[];对于(var i=0;i-
作为键,索引作为值。