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 二维数组去重(续)的主要内容,如果未能解决你的问题,请参考以下文章