zoukankan      html  css  js  c++  java
  • &&&&数组去重方法总结&&&&&

    【数组去重】本文一共总结了5种方法:

    //方法一:sort方法
    var ary = [1, 4, 2, 3, 1, 2, 2, 3, 3, 2, 5, 2, 1, 2];
    Array.prototype.rmSame = function () {
        var ary = this.sort(function (a, b) {
            return a - b
        });
        for (var i = 0; i < ary.length; i++) {
            if (ary[i] === ary[i + 1]) {
                ary.splice(i, 1);
                i--;
            }
        }
        return ary;
    };
    console.log(ary.rmSame());
    //方法二,双循环比较
    var ary1 = [1, 4, 2, 3, 1, 2, 2, 3, 3, 2, 5, 2, 1, 2];
    Array.prototype.rMsame = function () {
        for(var i=0;i<this.length;i++){
             var oLis=this[i];
            for(var j=i+1;j<this.length;j++){
                if(oLis===this[j]){
                    this.splice(j,1);
                    j--;
                }
            }
        }
        return this;
    };
    console.log(ary1.rMsame());
    //方法三:键值对
    var ary = [1, 2, 1, 2, 1, 2, 1, 4, 5, 63, 2, 5, 432, 24];
    Array.prototype.rmSome = function () {
        var obj={};
        for(var i=0;i<this.length;i++){
            var cur=this[i];
            if(obj[cur]==cur){
                this[i]=this[this.length-1];
                this.length--;
                i--;
                continue;
            }
            obj[cur]=cur;
        }
        return this;
    };
    console.log(ary.rmSome());
    //方法四 新数组
    var ary1=[];
    for(var i=0; i<ary.length; i++){
        /!*if(ary1.indexOf(ary[i])==-1){
            ary1.push(ary[i]);
        }else{
            ary.splice(i,1);
            i--;
        }*!/
        if(ary1.indexOf(ary[i])==-1){
            ary1.push(ary[i]);
        }
    }
    //方法五 可以记录对象的数组去重
    var obj={};
    for(var i=0; i<ary.length; i++){
        var cur=ary[i];
        if(obj[cur]){
            obj[cur]++;
        }else{
           obj[cur]=1;
        }
    }
    var ary=[];
    for(var attr in obj){
        ary.push(attr);
    }
  • 相关阅读:
    Android Lock Screen Orientation
    android studio修改新项目package名称
    DevExpress控件GridView挂下拉控件无法对上值
    Datawindow.net+access数据窗口制作方法
    LR11中web_save_timestamp_param
    LR自带网站飞机订票系统 启动
    MySQL ODBC驱动安装和配置数据源
    【笔记】LR配置ODBC连接数据库进行参数化(mysql )未完待续
    【笔记】LR录制方式和常用函数
    【笔记】http1.1支持的7种请求方法
  • 原文地址:https://www.cnblogs.com/HKCC/p/6060616.html
Copyright © 2011-2022 走看看