归纳数组中的几种去重方法

105 阅读1分钟

indexOf去重

const array = [2,22,13,4,2,2]
let newArray = []
for(let key of array){
    if(newArray.indexOf(key) === -1){
    newArray.push(key)
  }
}

哈希去重

var newArr = [];
var obj = {}
for (var i = 0; i < arr.length; i++) {
    if (obj[typeof arr[i] + arr[i]] == undefined) {
        newArr.push(arr[i]);
        obj[typeof arr[i] + arr[i]] = true;
    }
}

ES6 set数据结构

let set=new Set(arr);
let newArr=[...set];
// 或者
let newArr=Array.from(set);

ES6 map数据结构

const map = new Map();
arr.filter((item)=>!map.has(item)&&map.set(item,1))

includes

判断数组是否包含某个值,返回Boolean值

var newArr=[];
for(var i in arr){
    if(!newArr.includes(arr[i])){
        newArr.push(arr[i])
    }
}

之后再陆续学习补充......