zoukankan      html  css  js  c++  java
  • 数组去重个人总结的六种方式

    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

  • 相关阅读:
    Nginx中工作进程(work-process)为多少合适?
    Ubuntu中安装启动Nginx
    怎么获得类加载器?
    XML解析方式有哪些?
    HashMap常见面试题
    IO流分类
    集合之间的区别
    css布局2
    css布局1
    css3 总结01
  • 原文地址:https://www.cnblogs.com/douyaer/p/8207374.html
Copyright © 2011-2022 走看看