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

    今天专门腾时间对数组去重的问题进行了总结

    1.es6 is very good  

     var arr = [1,2,3,8,5,4,9,6,"s",47,5,2,47,5,5,2,7];
          var index = new Set(arr)
          console.log(index)

    2.es5中的indexOf

    var arr = [1,1,2,3,3,3,3,4];
    function find() {
    var newarr = [];
    for(var i = 0; i < arr.length; i++) {
    if (newarr.indexOf(arr[i]) == -1 ) {
    newarr.push(arr[i]);
    }
    
    }
    console.log(newarr);
    }
    find(arr);

    3.利用最简单的思想就是for循环,但是经过测试发现这种方法的去重效果特别差(如果有1000或10000个数)一次一次循环,不推介使用,在不同浏览器可以执行的时间不同

    function sort1(arr) {
        var flag = 0;
        var result = new Array();
        for(var i = 0; i < arr.length; i++) {
            flag = 0;
            for(var j = 0; j < arr.length; j++) {
                if(result[j] == arr[i]) {
                    flag = 1;break;
                }
            }
            if(flag == 0)
                result.push(arr[i]);
        }
    
        return result;
    }

    4.第三方类库

    jQuery: $.unique
    underscore: _.unique

    5. filter和indexOf相结合的方法

    let arr = [1, 'a', 'a', 'b', 'd', 'e', 'e', 1, 0, 2, 2, 3];
    function unique(arr){
        return arr.filter((item, index, array) =>  array.indexOf(item) === index);
    }
    console.log(unique(arr)); // [1, "a", "b", "d", "e", 0, 2, 3]

    先写这么多吧

  • 相关阅读:
    外观模式
    建造者模式
    原型模式
    工厂模式
    单例模式
    设计模式入门
    SpringBoot-SpringMVC开发总结
    SpringBoot日志
    IDEA Basics
    Kafka基础学习
  • 原文地址:https://www.cnblogs.com/objectjj/p/9844677.html
Copyright © 2011-2022 走看看