Javascript 找到一个重复的数字a,它';对象数组中的名称
我想在javascript中的对象数组中找到重复的数字a及其名称 我检查了相关问题,但没有找到准确的重复计数。如果有多个副本,即使他们也不会专注于找到它 我尝试了这个,这将抛出寻找重复的消息。但我需要重复的计数,并处理多个重复的情况,每个名称的计数出现多次 我的代码:Javascript 找到一个重复的数字a,它';对象数组中的名称,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我想在javascript中的对象数组中找到重复的数字a及其名称 我检查了相关问题,但没有找到准确的重复计数。如果有多个副本,即使他们也不会专注于找到它 我尝试了这个,这将抛出寻找重复的消息。但我需要重复的计数,并处理多个重复的情况,每个名称的计数出现多次 我的代码: let keyArr=this.customPropertiesArray.map(函数(项:any){return item.name}); 让isDuplicate=keyArr.some(函数(项:any,idx:any)
let keyArr=this.customPropertiesArray.map(函数(项:any){return item.name});
让isDuplicate=keyArr.some(函数(项:any,idx:any){
返回键arr.indexOf(项目)!=idx
});
如果(重复){
console.log(“发现重复项”);
}
您可以只计算对象中的名称
var数组=[{name:“name1”,value:“value1”},{name:“name2”,value:“value2”},{name:“name1”,value:“value42”},{name:“name2”,value:“value52”},{name:“name3”,value:“value2”},{name:“name2”,value:“value2”},
count=Object.create(空);
array.forEach(函数(o){
计数[o.name]=(计数[o.name]| | 0)+1;
});
Object.keys(count).forEach(函数(k){
如果(计数[k]>1){
log(k+'是重复出现的'+count[k]+'次');
}
});
控制台日志(计数)代码>
.as控制台包装{max height:100%!important;top:0;}
这将列出您的副本:
let array=[
{"name":"name1","value":"value1"},
{"name":"name2","value":"value2"},
{"name":"name1","value":"value42"},
{"name":"name2","value":"value52"},
{"name":"name3","value":"value2"},
{"name":"name2","value":"value2"}];
const counts = array.reduce((accum, current) => {
accum[current.name] = (accum[current.name] || 0) + 1;
return accum;
}, {});
Object.keys(counts)
.filter(key => counts[key] > 1)
.forEach(grp => console.log(`${grp} is duplicate occurring ${counts[grp]} times`));
是的,我希望大多数浏览器都支持它。以防万一,如果您正在使用javascript的任何新功能。