SOURCE

//数组的去重方法

let arr = [1,2,2,2,5,2,6,3,3]

//第二种:利用map和indexOf,map是符合条件的返回true,不是则返回false
//所以用一个新数组去装符合条件的数
let ret = [];
arr.map((item)=>{
    if(ret.indexOf(item) === -1){
        ret.push(item);
    }
})
// console.log(ret);

//第三种:filter和indexOf,filter返回的是符合条件的数
//indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
//如果没有找到匹配的字符串则返回 -1。
//注意: indexOf() 方法区分大小写。
let result = arr.filter((item,index)=>{
    return arr.indexOf(item) === index;
})
// console.log(result);

//第四种:set方法:集合
//ES6引入的
//利用set集合需要用Array.from将集合转化为数组类型
//也可以利用Set对象配合扩展运算符 …来进行数组去重。
let setResult = Array.from(new Set(arr))
let setResult1 = [...new Set(arr)]
console.log('set',setResult);
console.log('set2',setResult1);

//第五种:forEach和includes
//ES2016引入的includes
//判断是否包含某个元素
let inRet = [];
arr.forEach((item)=>{
    if(!inRet.includes(item)){
        inRet.push(item);
    }
})
console.log('includes',inRet);

//第六种:相邻元素去重
//先用sort()对数组进行排序,然后比较相邻两个元素
let retX = [];
arr.sort();
for(let i = 0;i < arr.length;i++){
    if(arr[i] !== arr[i+1]){
        retX.push(arr[i])
    }
}
console.log(retX);

//第七种:利用对象属性去重
//创建空对象,遍历数组,将数组中的值设为对象的属性,
//并给该属性赋初始值1,每出现一次,对应的属性值增加1,
//这样,属性值对应的就是该元素出现的次数了
let res = [],obj = {};
for (let i = 0; i < arr.length; i++) {
    if (!obj[arr[i]]) {
        res.push(arr[i])
        obj[arr[i]] = 1
    } else {
        obj[arr[i]]++
    }
}
console.log(obj);
// console.log('对象',res);


//第一种:双循环
let retS = [];
let flag;
for(let i = 0;i < arr.length;i++){
    falg = false;
    for(let j = i + 1;j < arr.length;j++){
        if(arr[i] === arr[j]){
            falg = true;
            break;
        }
    }
    if(!falg){
        retS.push(arr[i]);
    }
}
// console.log('双循环1',retS);
//第一种:双循环法和splice
for(let i = 0;i < arr.length;i++){
    for(let j = i + 1;j < arr.length;j++){
        if(arr[i] == arr[j]){
            //如果arr[i]==arr[j],则用splice删除arr[j]
            arr.splice(j,1);
            //因为删除了arr[j]所以索引减一才能比较所有的数,如果不减会遗漏一位数
            j -= 1;
        }
    }
}
// console.log(arr);
console 命令行工具 X clear

                    
>
console