码迷,mamicode.com
首页 > 编程语言 > 详细

js 二维数组去重(续)

时间:2018-10-12 01:24:42      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:原型链   turn   move   联系   数组去重   数组   class   判断   div   

之前写过二维数组去重,今天再翻出来看了看,简直不忍直视,如此垃圾,所以今天重新写一下咯。

二维数组去重,重复问题一定要和哈希联系起来,js和java不一样,没有map(es6有),但是js有object,键是不会重复的,不多说,代码如下:

var matrix=[
        [1,2,3,4],
        [3,4,5,6],
        [1,2,3,4]
    ]
    var removeRepeat=function(arr){
        var obj={};
        for(var i=0;i<arr.length;i++){
            // 判断当前项是否遍历过,是则删除,否存入obj以作对照
            if(obj.hasOwnProperty(arr[i])){ 
                arr.splice(i,1)
                i++;
            }
            obj[arr[i]]=i;
        }
        return arr;
    }
    removeRepeat(matrix);

 

继续优化,将该方法存入数组原型链,代码如下:

    var matrix=[
        [1,2,3,4],
        [3,4,5,6],
        [1,2,3,4]
    ]
    Array.prototype.removeRepeat=function(){
        var obj={};
        for(var i=0;i<this.length;i++){
            // 判断当前项是否遍历过,是则删除,否存入obj以作对照
            if(obj.hasOwnProperty(this[i])){ 
                this.splice(i,1)
                i++;
            }
            obj[this[i]]=i;
        }
        return this;
    }
    console.log(matrix.removeRepeat());

 

js 二维数组去重(续)

标签:原型链   turn   move   联系   数组去重   数组   class   判断   div   

原文地址:https://www.cnblogs.com/xingguozhiming/p/9775711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!