方法一:双重循环,遍历数组,将重复的元素删除

function unique(arr) {
  for(var i=0; i<arr.length; i++) {
    for(var j=i+1; j<arr.length; j++) {
      if(arr[i]===arr[j]) {
        arr.splice(j,1);
        j--;
      }
    }
  }
  return arr;
}

方法二:利用ES6的Set去重

function unique(arr) {
  return Array.from(new Set(arr));
  // 或者使用扩展运算符:
  // return [...new Set(arr)];
}

方法三:利用indexOf去重

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

方法四:利用对象属性去重

function unique(arr) {
  var obj = {};
  var newArr = [];
  for(var i=0; i<arr.length; i++) {
    if(!obj[arr[i]]) {
      obj[arr[i]] = true;
      newArr.push(arr[i]);
    }
  }
  return newArr;
}

方法五:利用Map去重

function unique(arr) {
  var map = new Map();
  var newArr = [];
  for(var i=0; i<arr.length; i++) {
    if(!map.has(arr[i])) {
      map.set(arr[i], true);
      newArr.push(arr[i]);
    }
  }
  return newArr;
}
``
js数组去重

原文地址: https://www.cveoy.top/t/topic/hjjl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录