window.onload=function(){
var a = ["dsa",12,3,"dsa","ad","df","ad"];
var ob = [];
for(i=0;i<a.length;i++){
for(j=0;j<ob.length;j++){
if(a[i]!==ob[j]){
ob.push(a[i]);
}
}
}

alert(ob);
}
学js不久  为什么我这个数组去重最后弹出的是空值呢?希望得到帮助,谢谢各位

解决方案 »

  1.   

    <body>
    <script>
    var a = ["dsa",12,3,"dsa","ad","df","ad"];
    var ob = [];
    var flag = true;
    ob[0] = a[0];
    for(i=1;i<a.length;i++){
    for(j=0;j<ob.length;j++){
    if(a[i]==ob[j]){
    flag = false;}}
    if(flag){
    ob.push(a[i]);
    }
    flag = true;
    }alert(ob);
    </script>
      

  2.   

    p2227先了 
    不过小弟也做出来了!
    请看:
    <html>
    <head>
    <title></title> <script type="text/javascript">
    window.onload = function() {
    var a = ["dsa", 12, 3, "dsa", "ad", "df", "ad", 3];
    var ob = [];
    var CompareTime = false;
    for (var i = 0; i < a.length; i++) {
    CompareTime = false;
    for (var j = i+1; j < a.length; j++) {
    if (a[i] === a[j]) {
    CompareTime = true;
    }
    }
    if (!CompareTime) {
    ob.push(a[i]);
    }
    }
    alert(ob.join("-"));
    }
    </script></head>
    <body>
    </body>
    </html>
      

  3.   

    呵呵,在csdn经常有这种情况:两个或者更多人同时在答题,只是有人回复得快一点而已
      

  4.   

    我想问下  你们两位都有这样的代码:
    var flag = true;
    var CompareTime = false;这个到底在代码里是什么用呢?  希望能帮忙回答一下 谢谢
      

  5.   

    用来标识是否需要插入数组的元素,你的原代码每一个二重循环里面都插入一次代码就重复了,反正就是逻辑的问题了,不自己理解别人也很难说清。你用开发人员工具或者firebug单步调试吧。
      

  6.   

    var a = ["dsa", 12, 3, "dsa", "ad", "df", "ad"];
    var reg = /(\b[^,]+\b)(?=,([^,]+,)*\1\b)/g;
    var ob = a.join(',').replace(reg, '').replace(/^,|,$/g,'').split(/,+/);
    alert(ob);打酱油先
      

  7.   

    var a = ["dsa",12,3,"dsa","ad","df","ad"],o={},b=[];
    for(var i=0,l=a.length; i < l; i++){
    if(!o[a[i]]){
    b.push(a[i]);
    o[a[i]] = true;
    }
    }
    alert(b);很久没出来打酱油了
      

  8.   

    window.onload=function(){
    var a = ["dsa",12,3,"dsa","ad","df","ad"];
    var ob = []; for(i=0;i<a.length;i++){

    var found = false;
    for(var j=0; j<ob.length; j++){
        if(a[i] == ob[j]){
    found = true;
    break;
    }
    }

    if(!found)
    ob.push(a[i]);

     
    }
    }alert(ob);
    }
      

  9.   

    请问谁能帮忙解释一下他这里为什么要新建一个o={}的空对象,然后判断条件if(![a[i]])是什么意思呢?谢谢
      

  10.   

    o={}主要控制数组a中重复数据
    a[i] 比如dsa
    如果o['dsa']存在不往b中添加元素
    如果不存在就赋一个值比如true(不为false,null,undefined,'',0即可),然后将‘dsa’存入b中。