前言
数组去重是道非常高频的面试题目,大部分都是对数组中的数字进行去重操作,相信大家都轻车熟路了。哪如果数组中每个元素都是是对象,应该怎样进行去重操作呢?
let targetArr = [
{ id: '1', name: 'Tom'},
{ id: '2', name: 'jack'},
{ id: '3', name: 'xiaohua'},
{ id: '2', name: 'jack'},
{ id: '3', name: 'xiaohua'},
{ id: '4', name: 'dw'},
{ id: '2', name: 'jack'},
{ id: '3', name: 'xiaohua'},
{ id: '4', name: 'dw'},
{ id: '2', name: 'jack'}
]
let map = new Map();
targetArr.forEach(item => {
if(!map.has(item.id)) {
map.set(item.id, item);
}
})
console.log([...map.values()])
targetArr = targetArr.filter((item,idx) =>{
return targetArr.findIndex(item1 => item.id === item1.id) === idx
})
console.log(targetArr)