JavaScript数组中包含数组如何去重?

例如说[1,2,3,[1,1,2],[3,2],2]这样的应该如何去掉重复的数字,谢谢

阅读 4k
评论 2014-03-24 提问
    5 个回答
    enue
    • 819
    Array.prototype.unique = function(){
        var res = [];
        var json = {};
        for(var i = 0; i < this.length; i++){
            if(!json[this[i]]){
                res.push(this[i]);
                json[this[i]] = 1;
            }
        }
        return res;
    }
    
    var arr = [112,1,23,'absc'];
    alert(arr.unique());
    

    1.创建一个新的数组存放结果
    2.创建一个空对象
    3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。

    来自

    评论 赞赏 2014-04-01
      101 新手上路
      合作问答

      欢迎来到 SegmentFault 101 新手上路问答。如果你是开发新手,有各种各样的疑惑,但又害怕提出来被嘲笑...