数组去重方法总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组去重方法总结相关的知识,希望对你有一定的参考价值。

方法1 filter和indexOf(能区分数字1和字符串‘1’):

function unique(arr){
  return arr.filter((item,index,array) => {
    return array.indexOf(item) >= index
  })
}

方法2 循环加splice(能区分数字1和字符串‘1‘,可改造用于对象比较):

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

方法3 hash检测类型(能区分数字1和字符串‘1’)

function unique(arr){
  var hash = {},res = [];
  var item,key;
  for(var i=0,len=arr.length;i<len;i++){
    item = arr[i];
    key = typeof(item) + item;
    if(!hash[key]){
      hash[key] = true;
      res.push(item);
    }
  }
  return res;
}

方法4 hash覆盖(不能区分数字1和字符串‘1’)

function unique(arr){
  var hash = {};
  for(var i=0,len=arr.length;i<len;i++){
    hash[arr[i]] = arr[i];
  }
  return Object.keys(hash);
}
































以上是关于数组去重方法总结的主要内容,如果未能解决你的问题,请参考以下文章

总结Javascript中数组各种去重的方法

数组去重的方法总结

数组去重方法总结

数组去重,字符串查找最多字符方法总结

js 数组去重方法总结

js对象数组操作之一:对象数组中对象去重的方法总结