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("有重复!");
 }
}

解决方案 »

  1.   

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

  2.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function mm(a)
    {
        return /(\x0f[^\x0f]+)\x0f[\s\S]*\1/.test("\x0f"+ a.join("\x0f\x0f") +"\x0f");
    }var ary = new Array("111","22","33","112");
    alert(mm(ary))
    //-->
    </SCRIPT>
      

  3.   

    活用正则表达式里的 \1 (第一个匹配结果)先用 join() 把数组转换成字符串且夹塞指定的分隔符 \x0f(这种分隔符用户一般是输不进来的),这一步纯粹是为简化且精确脚本而做。这种模式是我写 MzTreeView 的时候想出来的招数,可以跳过 for 循环达到极端的效率。
      

  4.   

    var hash = {};
    for(var i in arr) {
      if(hash[arr[i]])
        return true;
      hash[arr[i]] = true;
    }
    return false;
      

  5.   

    是吗?
    请测试
    var ary = new Array("111","22","33","1111");
    alert(mm(ary));
      

  6.   

    function mm(a)
    {return /(\x0f[^\x0f]+\x0f)[\s\S]*\1/g.test("\x0f"+ a.join("\x0f\x0f") +"\x0f");
    }var ary = new Array("111","22","33","1111");
    alert(mm(ary))
      

  7.   

    \x0f111  和 \x0f1111是匹配的\x0f111\x0f  和 \x0f1111\x0f  不匹配