要根据两个属性删除数组中的重复对象和原始值,可以使用JavaScript中的Array.prototype.filter()
方法结合Map
对象来实现。以下是一个示例代码:
function removeDuplicates(arr, prop1, prop2) {
const map = new Map();
return arr.filter(item => {
const key = `${item[prop1]}-${item[prop2]}`;
if (map.has(key)) {
return false;
} else {
map.set(key, true);
return true;
}
});
}
// 示例数组
const data = [
{ id: 1, name: 'Alice', age: 25 },
{ id: 2, name: 'Bob', age: 30 },
{ id: 3, name: 'Alice', age: 25 },
{ id: 4, name: 'Charlie', age: 35 },
{ id: 5, name: 'Bob', age: 30 }
];
// 删除重复对象
const uniqueData = removeDuplicates(data, 'name', 'age');
console.log(uniqueData);
removeDuplicates
函数:arr
,以及两个属性名prop1
和prop2
。Map
对象来存储已经遇到的键值对。filter
方法遍历数组,对于每个元素,生成一个由两个属性值组成的唯一键(例如name-age
)。Map
中,则过滤掉该元素;否则,将其添加到Map
中并保留该元素。name
和age
属性的对象。removeDuplicates
函数:name
和age
。通过这种方法,你可以有效地根据两个属性删除数组中的重复对象和原始值。
领取专属 10元无门槛券
手把手带您无忧上云