day2:数组去重的方式

36 阅读1分钟
  1. 使用new Set进行数组去重:
const arr = ['1', '2', '3', '1', '11', '2', '22', '33'];
function uniqueArr(data = []) {
  const res = [...new Set(data)];
  return res;
}
console.log(uniqueArr(arr));
// 输出结果:['1', '2', '3', '11', '22', '33']
  1. 循环遍历进行数组去重:
const arr = ['1', '2', '3', '1', '11', '2', '22', '33'];
  function uniqueArr(data = []) {
    const arr = [];
    data.forEach(item=>{
      if(!arr.includes(item)) {
        arr.push(item);
      }
    })
    return arr;
  }
  console.log(uniqueArr(arr));
  // 输出结果:['1', '2', '3', '11', '22', '33']
  1. 对象的数组去重:
const arr = [
  {
      "id": "1",
      "name": "1-0"
  },
  {
      "id": "2",
      "name": "2-1"
  },
  {
      "id": "3",
      "name": "3-2"
  },
  {
      "id": "1",
      "name": "1-0"
  },
  {
      "id": "11",
      "name": "11-5"
  },
  {
      "id": "2",
      "name": "2-1"
  },
  {
      "id": "22",
      "name": "22-6"
  },
  {
      "id": "33",
      "name": "33-7"
  }
];
function uniqueArr(data = []) {
  const obj = {};
  const arr = [];
  data.forEach(item=>{
    if(!obj[item.id]) {
      arr.push(item);
    }
    obj[item.id] = true;
  })
  return arr;
}
console.log(uniqueArr(arr));
/*
  输出结果:
      [
        {
            "id": "1",
            "name": "1-0"
        },
        {
            "id": "2",
            "name": "2-1"
        },
        {
            "id": "3",
            "name": "3-2"
        },
        {
            "id": "11",
            "name": "11-5"
        },
        {
            "id": "22",
            "name": "22-6"
        },
        {
            "id": "33",
            "name": "33-7"
        }
      ]
*/