之前面试字节跳动,问我对象去重怎么写,我没写出来,于是去查缺补漏
假设后端返回的数据是这样的,然后要把后面重复的去掉
const arr = [
{ id: 1, name: "张三" },
{ id: 2, name: "李四" },
{ id: 1, name: "张三" }, // 重复
{ id: 3, name: "王五" },
];
使用map和set
// 去重方法:根据 id 去重
function uniqueByKey(arr, key) {
const map = new Map();
arr.forEach((item) => map.set(item[key], item)); // 重复key会覆盖
return [...map.values()];
}
// 使用
const result = uniqueByKey(arr, "id");
console.log(result);