下列数组arr,通过name进行去重,即使number也存在重复,但依然保留。
const arr = [
{name:'jack',number:1},
{name:'jack',number:2},
{name:'marry',number:34},
{name:'tom',number:34}
]
const tempData = new Set()
const newArr = arr.filter((item) => {
if(tempData.has(item.name)) {
return false
} else {
tempData.add(item.name)
return true
}
})
console.log(newArr)
//[
// { name: 'jack', number: 1 },
// { name: 'marry', number: 34 },
// { name: 'tom', number: 34 }
//]
function deduplication(array: any[], key: string) {
const uniqueArray = [];
const setObj = new Set();
for (let item of array) {
if (!setObj.has(item[key])) {
setObj.add(item[key]);
uniqueArray.push(item);
}
}
return uniqueArray;
}
const processedArr = deduplication(arr,'id')