var str = new Array(); 比如有這么一組數組,里面放了20個18位的身份證號碼 要判斷里面的身份證號碼是否有重復 如何快速判斷? 代碼如下: 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("有重復!"); } }
代碼如下: 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("重復內容:"+nary[i]);} }
活用正則表達式里的 /1 (第一個匹配結果) 先用 join() 把數組轉換成字符串且夾塞指定的分隔符 /x0f(這種分隔符用戶一般是輸不進來的),這一步純粹是為簡化且精確腳本而做。 這種模式是我寫 MzTreeView 的時候想出來的招數,可以跳過 for 循環達到極端的效率。 代碼如下: var hash = {}; for(var i in arr) { if(hash[arr[i]]) return true; hash[arr[i]] = true; } return false;