zoukankan      html  css  js  c++  java
  • js判断数组里是否有重复元素的方法

    				版权声明:本文为博主原创文章,未经博主允许不得转载。					https://blog.csdn.net/longzhoufeng/article/details/78840974				</div>
    							<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-f57960eb32.css">
    							            <div id="content_views" class="markdown_views">
    						<!-- flowchart 箭头图标 勿删 -->
    						<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg>
    						<h3 id="第一种方法但是下面的这种方法数字字符串类似相同返回的还是真有点不靠谱如果是其它的字符是可以的"><a name="t0"></a>第一种方法:但是下面的这种方法数字字符串类似相同,返回的还是真,有点不靠谱,如果是其它的字符是可以的</h3>
    
    var ary11 = new Array("1", "ff", "11", "aa", "2222");    
    // 验证重复元素,有重复返回true;否则返回false
    function mm(a) {
        return /(x0f[^x0f]+)x0f[sS]*1/.test("x0f" + a.join("x0fx0f") + "x0f");
    }
     mm(ary11)
     alert(mm(ary11))
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    第二种方法:但是下面的这种方法数字字符串类似相同,返回的也还是真,有点不靠谱,如果是其它的字符是可以的

    var ary = ["1", "ff", "11", "aa", "2222"]
    var s = ary.join(",") + ",";
    for(var i = 0; i < ary.length; i++) {
        if(s.replace(ary[i] + ",", "").indexOf(ary[i] + ",") > -1) {
            alert("数组中有重复元素:" + ary[i]);
            break;
        }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    第三种方法:这种方法好像不会有什么问题

    var ary = new Array("11", "222", "33", "111", "22");
    var nary = ary.sort();
    for(var i = 0; i < nary.length - 1; i++) {
        if(nary[i] == nary[i + 1]) {
            alert("重复内容:" + nary[i]);
        }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    第四种方法:这种方法应该不会有什么问题,这个使用了map类似的功能,没毛病,我用的就是这个

    var ary = new Array("1111", "222", "33", "111", "22");
    alert(isRepeat(ary));
    // 验证重复元素,有重复返回true;否则返回false
    function isRepeat(arr) {
        var hash = {};
        for(var i in arr) {
            if(hash[arr[i]]) {
                return true;
            }
            // 不存在该元素,则赋值为true,可以赋任意值,相应的修改if判断条件即可
            hash[arr[i]] = true;
        }
        return false;
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    					<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-258a4616f7.css" rel="stylesheet">
                      </div>
  • 相关阅读:
    oracle 导入数据时提示只有 DBA 才能导入由其他 DBA 导出的文件
    oracle 常用语句
    android udp 无法收到数据 (模拟器中)
    android DatagramSocket send 发送数据出错
    AtCoder ABC 128E Roadwork
    AtCoder ABC 128D equeue
    AtCoder ABC 127F Absolute Minima
    AtCoder ABC 127E Cell Distance
    CodeForces 1166E The LCMs Must be Large
    CodeForces 1166D Cute Sequences
  • 原文地址:https://www.cnblogs.com/duende99/p/10775858.html
Copyright © 2011-2022 走看看