zoukankan      html  css  js  c++  java
  • 找出数组中重复的数字

    方法一、先排序再判断

      先对数组进行排序,判断前一个与后一个相等且不在新数组中的情况下,再把元素放到新数组中去。

            Array.prototype.duplicates=function () {
                var arr = this;
                var newArr=[];
                arr.sort();
                for(var i =0;i<arr.length;i++){
                    if(arr[i]==arr[i+1]&&(newArr.indexOf(arr[i])==-1) ){
                        newArr.push(arr[i]);
                        i++;
    
                    }
                }
    
                return newArr;
            }
            var a = [1,2,5,4,2,3,1,4,5,3,4];
            console.log(a.duplicates());//结果为[1,2,3,4,5]

    方法二、两个for循环

      数组中的每一个数均和后面的所有数进行比较,如果存在相等的数且不在新数组中,将该数加到新数组中。

    Array.prototype.duplicates=function () {
        var arr = this;
        var a=[];
        for(var i=0;i<arr.length-1;i++) {
            for(var j=i+1;j<arr.length;j++) {
                if(arr[i]==arr[j]&&a.indexOf(arr[i])==-1)  {
                    a.push(arr[i]);
                }
            }
        }
        return a.sort();
    }
    var a = [1,2,5,4,2,3,1,4,5,3,4];
    console.log(a.duplicates());//结果为[1,2,3,4,5]

    方法三、判断同一个数字的从前往后和从后往前位置是否一致

      循环数组中的每一个数,将从前往后第一次出现的位置和从后往前第一次出现的位置进行比较,如果不想等,说明该数重复。并且该数不在新数组中,将该数加到新数组后面。

    Array.prototype.duplicates=function (){
        var arr = this;
        var result = [];
        arr.forEach(item=>{
            if(arr.indexOf(item)!==arr.lastIndexOf(item)&&result.indexOf(item)==-1){
                result.push(item);
            }
        })
        return result;
    
    }
    var a = [1,2,5,4,2,3,1,4,5,3,4];
    console.log(a.duplicates());//结果为[1, 2, 5, 4, 3]
  • 相关阅读:
    安装LVS安装LVS和配置LVS的工作比较繁杂
    移动web开发研究
    10个顶级的CSS UI开源框架
    Jquery使用tbody编辑功能实现table输入计算功能
    【开源】Hawk-数据抓取工具:简明教程
    55个最实用大数据可视化分析工具
    Apache本地服务无法自启动问题解决
    网站10大致命SEO错误
    企业管理:名片的重要性
    开发人员应该知道的SEO
  • 原文地址:https://www.cnblogs.com/gg-qq/p/10797316.html
Copyright © 2011-2022 走看看