js判斷數組里是否有重復元素的方法


轉:

js判斷數組里是否有重復元素的方法

 https://blog.csdn.net/longzhoufeng/article/details/78840974

第一種方法:但是下面的這種方法數字字符串類似相同,返回的還是真,有點不靠譜,如果是其它的字符是可以的

var ary11 = new Array("1", "ff", "11", "aa", "2222");    
// 驗證重復元素,有重復返回true;否則返回false
function mm(a) {
    return /(\x0f[^\x0f]+)\x0f[\s\S]*\1/.test("\x0f" + a.join("\x0f\x0f") + "\x0f");
}
 mm(ary11)
 alert(mm(ary11))

 


第二種方法:但是下面的這種方法數字字符串類似相同,返回的也還是真,有點不靠譜,如果是其它的字符是可以的

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

 


第三種方法:這種方法好像不會有什么問題

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

 


第四種方法:這種方法好像不會有什么問題

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM