[英]Find unique element in an array of objects using Set doesn't work
我有一个对象数组,我试图从中获取独特的元素。 我尝试使用Set来获取独特的元素。 它在对象数组的情况下不起作用,但在字符串数组等情况下有效。
如何使用set实现此目的?
let data =[{"name":"tagName2"},{"name":"tagName2"}];
console.log(data); //[ { name: 'tagName2' }, { name: 'tagName2' } ]
console.log((new Set(data))); //Set { { name: 'tagName2' }, { name: 'tagName2' } }
您可以先使用唯一对象过滤数组,然后将其传递给Set,如下所示:
let data =[{"name":"tagName2"},{"name":"tagName2"}];
uniqueData=removeDuplicates(data, "name");
console.log((new Set(uniqueData))); //Set {{ name: 'tagName2' }}
function removeDuplicates(data, param){
return data.filter(function(item, pos, array){
return array.map(function(mapItem){ return mapItem[param]; }).indexOf(item[param]) === pos;
})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.