zoukankan      html  css  js  c++  java
  • 数组去重

    对下列数组去重:
    var arr = ['aa','bb','cc','',1,0,'1',1,'bb',null,undefine,null];
    要求考虑兼容性和效率

    方法一

    function unique(arr){
        var result = [];
        for (var i = 0;i<arr.length;i++){
            //如果当前数组的第i项已经保存进了临时数组,忽略掉
            //否则的话把当前项push到临时数组里面
            if(result.indexOf(arr[i]) < 0)  result.push(arr[i]);
            //indexOf 返回元素在result中的位置,如果没有返回-1;
        }
        return result;
    }
    var arr = ['aa','bb','cc','',1,0,'1',1,'bb',null,undefine,null];
    console.log(unique(arr));

    方法二

    function unique(arr){
        var result = [];
        var hash = {};
        for ( var i=0;i<arr.length;i++){
            var key = (typeof arr[i]) + arr[i];
            if(!hash[key]){
                result.push(arr[i]);
                hash[key] = true;
            }
        }
        return result;
    }
    var arr = ['aa','bb','cc','',1,0,'1',1,'bb',null,undefine,null];
    console.log(unique(arr));

    方法三

    function unique(arr){
        var n = [this[0]];   //结果数组
        for(var i =1;i<this.length;i++){   //从第二项开始遍历
            //如果当前数组的第i项在当前数组中第一次出现的位置不是i
            //那么表示第i项是重复的,忽略掉。否则存入结果数组
            if(this.indexOf(this[i]) == i)  n.push(this[i]);
        }
        return n;
    }
    var arr = ['aa','bb','cc','',1,0,'1',1,'bb',null,undefine,null];
    console.log(unique(arr));
    

    方法四

    function unique(arr){
        this.sort();
        var re = [this[0]];
        for (var i =1;i<this.length;i++){
            if( this[i]  != re[re,length-1] ){
                re.push(this[i]);
            }
        }
    }
    var arr = ['aa','bb','cc','',1,0,'1',1,'bb',null,undefine,null];
    console.log(unique(arr));
    

    先把数组排序,然后比较相邻的两个值。

    方法五

    //去重(ES6)
    function unique2(array){
    return Array.from(new Set(array));
    }
    var arr = ['aa','bb','cc','',1,0,'1',1,'bb',null,undefine,null];
    console.log(unique(arr));
  • 相关阅读:
    Mysql转换成SqlServer数据库,以及SqlServer转换成Mysql数据库
    MySQL分页存储过程
    zabbix监控指定端口
    zabbix_server.conf 详解
    zabbix监控常见系统报错
    Zabbix3.2下Template App Zabbix Server+Template OS Linux Item
    Zabbix邮件报警配置
    分布式监控系统Zabbix-3.0.3-完整安装记录
    Nginx高级应用之Location Url
    st
  • 原文地址:https://www.cnblogs.com/Ella2018/p/10059406.html
Copyright © 2011-2022 走看看