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

    1.

     // 数组去重
        // 检查是否有重复数据,有,删除,没有,过
        function norepeat(arr){
            // 先准备空数组
            var sArr = [];
            // 拿到大数组中所有数据
            for(var i=0;i<arr.length;i++){
                // 依次检测原来的空数组中是否包含大数组的数据,不包含,就放进去
                if(!has(sArr,arr[i])){
                    sArr.push(arr[i])
                }
            }
            return sArr;
        }
        var a = norepeat([1,2,3,4,4,4,5,6,7,6,5,4,3,2,1,1,1,1])
        console.log(a)
        
        // 检测数组中数据的功能
        function has(arr,n){
            for(var i=0;i<arr.length;i++){
                if(arr[i] === n){
                    return true;
                }
            }
            return false;
        }

    2. for of + includes

     var arr =[1,2,3,3,21,4,4,6]
        var arr1 = [];
        for(let i of arr){
            !arr1.includes(i)&& arr1.push(i)
        }
        console.log(arr1);

    3. fillter + indexOf

    var arr = [1, 2, 3, 3, 21, 4, 4, 6]
       var arr1=  arr.filter(function(item,index){
           return arr.indexOf(item) === index;
        })
      console.log(arr1)

    4.  new  Set()

    var arr =[1,1,2,2,3,3,4,4,5,5];
        var myset = new Set(arr);
        console.log(myset)
        var newArr =[];
        for(var i of myset){
            newArr.push(i)
        } 
        console.log(newArr);

    5.双层for循环加splice

    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;
        }

    6.利用sort()方法

    function unique(arr) {
            if (!Array.isArray(arr)) {
                console.log('type error!')
                return;
            }
            arr = arr.sort()
            var arrry = [arr[0]];
            for (var i = 1; i < arr.length; i++) {
                if (arr[i] !== arr[i - 1]) {
                    arrry.push(arr[i]);
                }
            }
            return arrry;
        }
  • 相关阅读:
    向MyEclipse添加Oracle数据库
    如何让搜索引擎抓取AJAX内容?
    XCode常用快捷键
    VMware Workstation 9上安装Mac OS X 10.8
    IOS学习第一篇——利用Xcode中的Interface Builder创建Hello World示例
    FM 101.7
    SqlServer游标操作
    添加COOKIE
    c#活动目录操作
    WCF服务调用方式
  • 原文地址:https://www.cnblogs.com/zl-light/p/11711796.html
Copyright © 2011-2022 走看看