这样行不?
====================================
<SCRIPT>
function arrange(arr)
{//注意arr 为引用,直接操作实参
   arr.sort();//根据ASC重牌
   var ptr=0;
   while(ptr<arr.length)
 if(arr[ptr]==arr[ptr+1])arr.splice(ptr,1);//当越界时,js数组返回undefined,从而结束循环
 else ptr++   
}//测试...
var test1=[1,2,3,3,2,4,6,5,4,6,1,2]
document.write("原数组:"+test1+">>>>>>  ")
arrange(test1)
document.write(test1+"<BR><BR>")var test2=["function","JavaScript","ptr","while","function","splice","sort","ptr","sort","JavaScript","JavaScript","splice"]
document.write("原数组:"+test2+">>>>>>  ")
arrange(test2)
document.write(test2+"<BR><BR>")
</SCRIPT>

解决方案 »

  1.   

    因为楼主要求合并相同项,势必改变数祖长度,于是元素顺序也被打乱,所以排序不会影响预期效果。
    如果你是按特定规则排列好的,你可以用sortfunction来根据逻辑关系排序,
      

  2.   

    llrock(百乐宝)用了JS版本 5.5的方法。
      

  3.   

    <script>
    var a =new Array("AAAA","B","A","A","B","F","D","C","A","B","A","A","B","C")
    for (var i=0;i<a.length;i++)
    {
    for(j=i+1;j<a.length;j++)
    {
    if(a[i]==a[j]) a[i]=null
    }
    }
    var m = 0,ok = new Array()
    for(k=0;k<a.length;k++)
    {
    if(a[k])ok[m++] = a[k]
    }
    alert(ok)
    </script>
      

  4.   

    建议:发现重复后弹出当前项,这在JScript内置支持的.你可以参考5.6文档,写出来也很容易的.
      

  5.   

    另一种写法,有点小毛病。:(
    <script>
    var test=[1,2,3,3,"abc",4,6,5,4,6,1,2];
    document.write("原数组:"+test+"<br>");
    var ar = new Array();
    for(v in test)
      ar[test[v]] = v;
    document.write("工作数组:"+ar+"<br>");
    var test = new Array();
    for(v in ar) {
      test[ar[v]] = v;
    }
    document.write("原数组:"+test+"<br>");</script>