数组去重的Pro版本

发布时间 2023-06-08 11:04:30作者: 随手笔记
  // 根据name属性去重 数据的第一项和第二项因为name相同,也会被认为是一项
  const arr = [
    { name: "1", age: 12 },
    { name: "2", age: 12 },
    { name: "2", age: 15 },
  ];
  const namesArr = [...new Set(arr.map((item) => item.name))];
  const newArr = namesArr.map((item) => {
    const findItem = arr.find((items) => items.name === item);
    if (findItem) {
      return findItem;
    }
  });
  // 根据整个对象去重
  const arr = [
    { name: "1", age: 12 },
    { name: "2", age: 12 },
    { name: "2", age: 15 },
    { name: "2", age: 15 },
  ];
  const handlerArr = (arr) => {
    const newArr = arr.map((items) => ({
      ...items,
      jsonStr: JSON.stringify(items),
    }));
    const setArr = [...new Set(newArr.map((item) => item.jsonStr))];
    const list = setArr.map((item) =>
      newArr.find((items) => items.jsonStr === item)
    );
    return list;
  };