var str = new Array(); 比如有這么一組數(shù)組,里面放了20個(gè)18位的身份證號(hào)碼 要判斷里面的身份證號(hào)碼是否有重復(fù) 如何快速判斷? 代碼如下: var ary = new Array("111","22","33","111"); var s = ary.join(",")+","; for(var i=0;i<ary.length;i++) { if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1) { alert("有重復(fù)!"); } }
代碼如下: var ary = new Array("111","22","33","111"); var nary=ary.sort(); for(var i=0;i<nary.length-1;i++) {if (nary[i]==nary[i+1]) {alert("重復(fù)內(nèi)容:"+nary[i]);} }
活用正則表達(dá)式里的 /1 (第一個(gè)匹配結(jié)果) 先用 join() 把數(shù)組轉(zhuǎn)換成字符串且?jiàn)A塞指定的分隔符 /x0f(這種分隔符用戶一般是輸不進(jìn)來(lái)的),這一步純粹是為簡(jiǎn)化且精確腳本而做。 這種模式是我寫(xiě) MzTreeView 的時(shí)候想出來(lái)的招數(shù),可以跳過(guò) for 循環(huán)達(dá)到極端的效率。 代碼如下: var hash = {}; for(var i in arr) { if(hash[arr[i]]) return true; hash[arr[i]] = true; } return false;