数组通过对象内指定的参数去重
// 假设二维数组为 arr
let arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' },
{ id: 3, name: 'Charlie' },
{ id: 4, name: 'David' },
{ id: 3, name: 'Charlie' }
];
// 使用 Set 数据结构进行对象去重
let uniqueObjects = new Map();
arr.forEach(obj => {
uniqueObjects.set(obj.id, obj);
});
// 将 Map 的值转换为对象数组
let filteredArr = Array.from(uniqueObjects.values());
console.log(filteredArr);
二维数组去重
// 假设二维数组为 arr
let arr = [
[{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 1, name: 'Alice' }],
[{ id: 3, name: 'Charlie' }, { id: 4, name: 'David' }, { id: 3, name: 'Charlie' }]
];
// 创建一个新的二维数组 filteredArr,用于存放去重后的结果
let filteredArr = arr.map(subArr => {
// 使用 Set 数据结构进行对象去重
let uniqueObjects = new Set(subArr.map(obj => JSON.stringify(obj)));
// 将 Set 转换为对象数组
return Array.from(uniqueObjects).map(strObj => JSON.parse(strObj));
});
console.log(filteredArr);
二维数组指定参数去重
// 假设二维数组为 arr
let arr = [
[{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 1, name: 'Alice' }],
[{ id: 3, name: 'Charlie' }, { id: 4, name: 'David' }, { id: 3, name: 'Charlie' }]
];
// 创建一个新的二维数组 filteredArr,用于存放去重后的结果
let filteredArr = arr.map(subArr => {
// 使用 Map 数据结构进行对象去重
let uniqueObjects = new Map();
subArr.forEach(obj => {
uniqueObjects.set(obj.id, obj);
});
// 将 Map 的值转换为对象数组
return Array.from(uniqueObjects.values());
});
console.log(filteredArr);