使用js 根据多个字段进行上述数据的去重
时间: 2024-09-24 21:25:39 浏览: 26
在JavaScript中,如果你需要根据多个字段对数据进行去重,你可以使用数组的`reduce()`方法结合对象字面量或者哈希表来进行操作。假设你有一个对象数组(每个对象有多个属性),可以按照以下步骤进行:
```javascript
function uniqueData(arr, keysToCompare) {
const hash = {};
return arr.reduce((uniqueItems, item) => {
let key = JSON.stringify(item); // 将对象转换为字符串作为键值
for (let i = 0; i < keysToCompare.length; i++) {
key += `_${item[keysToCompare[i]]}`;
}
if (!hash[key]) { // 如果新的键不存在,添加到结果中
hash[key] = true;
uniqueItems.push(item);
}
return uniqueItems;
}, []);
}
// 示例
const data = [
{ id: 1, name: 'Alice', age: 25 },
{ id: 2, name: 'Bob', age: 30 },
{ id: 1, name: 'Alice', age: 35 }, // 需要去重
{ id: 3, name: 'Charlie', age: 40 }
];
const keysToCompare = ['id', 'name'];
const uniqueArray = uniqueData(data, keysToCompare);
console.log(uniqueArray);
阅读全文