对象去重

221 阅读1分钟

之前面试字节跳动,问我对象去重怎么写,我没写出来,于是去查缺补漏

假设后端返回的数据是这样的,然后要把后面重复的去掉

 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);