• 数组去重个人总结的六种方式


    1-1.利用ES6的Set函数

    let arr=[1,2,3,4,5,3,5,6,2];
    let a=new Set(arr);
    let b=[...a];
    console.log(b);//[1,2,3,4,5,6]

    1-2.利用数组的过滤方式

    let arr=[1,2,3,4,5,3,5,6,2];
    let b= arr.filter((val,index,self)=>{
        return self.indexOf(val)===index;
    });
    console.log(b);//[1,2,3,4,5,6]

    1-3.利用for循环去重

    let arr=[1,2,3,4,5,3,5,6,2];
    let b=[];
    for(let i=0;i<arr.length;i++){
        if(b.indexOf(arr[i])<0){
            b.push(arr[i])
        }
    }
    console.log(b);//[ 1, 2, 3, 4, 5, 6 ]

    1-4.利用双for循环去重

    let arr=[1,2,3,4,5,3,5,6,2];
    let b=[];
    for(let i=0;i<arr.length;i++){
        let bool=true;
        if(i>0){
            for(let j=0;j<b.length;j++){
                if(b[j]===arr[i]){
                  bool=false;
                }
            }
            if(bool){
                b.push(arr[i]);
            }
        }else {
            b.push(arr[i])
        }
    }
    console.log(b);//[ 1, 2, 3, 4, 5, 6 ]

    1-5.先对原数组进行排序,在将原数组和去重数组最后一项比较

    let arr=[1,2,3,4,5,3,5,6,2];
    let b=[];
    let arr1=arr.sort();
    for(let i=0;i<arr1.length;i++){
        if(arr1[i]!==b[b.length-1]){
            b.push(arr1[i])
        }
    }
    console.log(b);//[ 1, 2, 3, 4, 5, 6 ]

    1-6.创建空对象,将原数组每一次循环的值作为对象的属性,判断对象属性是否存在,不存在的放入去重数组

    let arr=[1,2,3,4,5,3,5,6,2];
    let b=[];
    let c={};
    for(let i=0;i<arr.length;i++){
       if(!c[arr[i]]){
           b.push(arr[i]);
           c[arr[i]]='hello'
       }
    }
    console.log(b);//[ 1, 2, 3, 4, 5, 6 ]

    个人比较推荐1,2,6

  • 相关阅读:
    jbox使用总结
    NOI 2012 【迷失游乐园】
    SCOI 2008 【奖励关】
    trie树——【吴传之火烧连营】
    状压DP——【蜀传之单刀赴会】
    NOIP提高组2016 D2T3 【愤怒的小鸟】
    NOIP提高组2013 D2T3 【华容道】
    [学习笔记] [KMP]字符串匹配算法
    SHOI 2014 【概率充电器】
    HNOI 2015 【亚瑟王】
  • 原文地址:https://www.cnblogs.com/douyaer/p/8207374.html
Copyright © 2020-2023  润新知