• 手写数组去重


    //本来以为挺简单,还是天真,考虑,NaN,{}.

    1:arr.splice(i+1,1);//表示插入删除元素,表示删除i+1个元素,1表示删除一个

    //手写数组去重

                             var arr = [1,2,3,3];

    //排序的数组 arr.sort();//排序好了就不写了

                             for(var i=0;i<arr.length-1;i++)

                             {

                                      if(arr[i]==arr[i+1])

                                      {

                                              arr.splice(i+1,1);

                                              i--;

                                      }

                             }

                             console.log(arr);

    2:ES6去重

    去重的原理:

    Set()结构本身的特性:Set容器 : 无序不可重复的多个value的集合体

    Array.from(v) : 将伪数组对象或可遍历对象转换为真数组

    function unique (arr) {
      return Array.from(new Set(arr))
    }
    var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
    console.log(unique(arr))
     //[1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {}, {}]6方法去重

    3:ES5去重

    function unique(arr){            
            for(var i=0; i<arr.length; i++){
                for(var j=i+1; j<arr.length; j++){
                    if(arr[i]==arr[j]){         //第一个等同于第二个,splice方法删除第二个
                        arr.splice(j,1);
                        j--;
                    }
                }
            }
    return arr;
    }
    var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
        console.log(unique(arr))
    //[1, "true", 15, false, undefined, NaN, NaN, "NaN", "a", {…}, {…}]     //NaN和{}没有去重,两个null直接消失了

    4:更多参考

    https://segmentfault.com/a/1190000016418021

  • 相关阅读:
    virtualenv与virtualenvwrapper
    数据类型、变量定义、数据类型转换
    计算机存储单元、标识符
    html单页面中用angular js
    svn客户端访问失败,错误“请求的名称有效,但是找不到请求的类型”的解决
    php 获取某数组中出现次数最多的值(重复最多的值)与出现的次数
    数据库导入时出现“2006
    phpstorm 激活
    取消本地SVN文件夹与服务器的关联
    js实现倒计时函数
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/9945690.html
Copyright © 2020-2023  润新知