[英]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.