js 二维数组去重(续)

Posted mingL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 二维数组去重(续)相关的知识,希望对你有一定的参考价值。

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

二维数组去重,重复问题一定要和哈希联系起来,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 二维数组去重(续)的主要内容,如果未能解决你的问题,请参考以下文章

请教thinkphp 二维数组值去重怎么去的哦

js怎么解析后台传过来的二维数组

php 多个 一维数组 去重 组成新数组

js数组遍历

js里面二维数组如何实现?

二维数组去重