array 去除重复

Array.prototype.del =function() {
    vara = {}, c = [], l =this.length;
    for(vari = 0; i < l; i++) {
        varb =this[i];
        // for 循环第 1 次:1
        // for 循环第 2 次:2
        // for 循环第 3 次:"2"
        // for 循环第 4 次:2
        // for 循环第 5 次:3
       alert(b);
   
        vard = (typeofb) + b;
   
        // for 循环第 1 次:number1
        // for 循环第 2 次:number2   <--- 重复
        // for 循环第 3 次:string2
        // for 循环第 4 次:number2   <--- 重复
        // for 循环第 5 次:number3
        alert(d);
   
        // for 循环第 1 次:number1 为 undefined
        // for 循环第 2 次:number2 为 undefined
        // for 循环第 3 次:string2 为 undefined
        // for 循环第 4 次:注意 {} 中已经有了 number2,所以不为 undefined
        // for 循环第 5 次:number3 为 undefined
        alert(a[d]);
   
        // a[d] 代表将 d 设为 a 的属性,例如 a = {number2},但没有值
        if(a[d] === undefined) {
            // 1, 2, "2", 3 被 push
            c.push(b);
   
            // 这里 = 1 只是给此属性一个值,例如 a = {number2: 1}
            a[d] = 1;
   
            // for 循环第 1 次:{number1=1}
            // for 循环第 2 次:{number1=1, number2=1}
            // for 循环第 3 次:{number1=1, number2=1, string2=1}
            // for 循环第 4 次:因为 number2 存在,此次被忽略
            // for 循环第 5 次:
            //      {number1=1, number2=1, string2=1, number3=1}
            alert(a);
        }
    }
    returnc;
}
   
alert([1, 2,"2", 2, 3].del());
posted @ 2014-01-13 09:05  xjt360  阅读(240)  评论(0编辑  收藏  举报