美文网首页
数组去重的几个方法

数组去重的几个方法

作者: 贫下码农 | 来源:发表于2018-07-19 19:43 被阅读0次

    title: 数组去重的几个方法
    date: 2017-11-11
    tags: mac apache CGI


    数据去重

        //1、排序去重
        var arr = [1, 4, 5, 6, 20, 3, 5, 7, 2, 3, 2, 1, 6, '1'];
        arr.sort(function(a, b) {
            return a - b;
        });
        console.log(arr);
        var result = [];  
        var len = arr.length; 
        for (var i = 0; i < len; i++) {     
            if (arr[i] !== arr[i + 1]) {     
                result.push(arr[i]);     
            }   
        }
        console.log(result);
    
        //2、不排序直接去重
        var arr2 = [1, 4, 5, 6, 20, 3, 5, 7, 2, 3, 2, 1, 6, '1'];
    
        function unique2(arr2) {
            var len2 = arr2.length;
            var result2 = [],
                falg;
            for (var i = 0; i < arr2.length; i++) {
                flag = false;
                for (var j = i + 1; j < arr2.length; j++) {
                    if (arr2[i] === arr2[j]) {
                        //有相等
                        flag = true;
                        break;
                    }
                }
                if (!flag) {
                    result2.push(arr2[i]);
                }
            }
    
            return result2;
        }
    
    
        //3   第三种方式  利用hashTable
        function unique(arr) {
            var result = [],
                hash = {};
            for (var i = 0, elem;
                (elem = arr[i]) != null; i++) {
                if (!hash[elem]) {
                    result.push(elem);
                    hash[elem] = true;
                }
            }
            return result;
        }
        console.log("11");
        console.log(unique(arr2));
    
        var num1 = 100;
        console.log(~num1); //-101
    
    
        var num = 0;
    
        for (var i = 0; i < 10; i++) {
            for (var j = 0; j < 10; j++) {
                if (i == 5 && j == 5) {
                    break;
                }
                num++;
            }
        }
        //alert(num);
    
    
    
        function add(num1, num2) {
            arguments[1] = 10;
            return arguments[0] + arguments[1];
        }
    
        var a = 5,
            b = 20;
        console.log(add(a, b));
        console.log(b);
    

    个人感觉hash去重的效果较好

    相关文章

      网友评论

          本文标题:数组去重的几个方法

          本文链接:https://www.haomeiwen.com/subject/jkhxmftx.html