数组去重的简单方法

一、new Set()方法

Set对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。

function removeRepeatElement(arr) {
  return Array.from(new Set(arr));
}

注意:要用Array.from()来将Set对象转换成一个真的数组。

二、ES6三点运算符 + new Set()

function removeRepeatElement(arr) {
  return [...new Set(arr)];
}

三、indexOf()方法

遍历源数组,判断新数组中有没有源数组的数组项,没有就加到新数组中去。

function removeRepeatElement(arr) {
  let newArr = [];
  for (let i = 0; i < arr.length; i++) {
    if (newArr.indexOf(arr[i]) === -1) {
      newArr.push(arr[i]);
    }
  }
  return newArr;
}

四、相邻元素对比(sort() + Object.is())

先排序,排完之后相邻元素对比。

function removeRepeatElement3(arr) {
  let newArr = [];

  arr.sort();

  for (let i = 0; i < arr.length; i++) {
    if(!Object.is(arr[i], arr[i+1])) {
      newArr.push(arr[i]);
    }
  }

  return newArr;
}
原文地址:https://www.cnblogs.com/buildnewhomeland/p/13117987.html