javascript 数组 去重

javascript数组去重有如下 方法: 

一) 利用 数组中的 indexOf判断 

例如: 

Array.prototype.unique=function(){
     var n=[];
     for(var i=0;i<this.length;i++){
             if(n.indexOf(this[i])==-1){
                 n.push(this[i]);
          }
     }
     return n;
}

var array=[3,5,6,7,6,4,3,8,9];
array.unique();

 

二 ) 利用 hash表 ,把已经出现过的通过下标的形式 存在 Object内中 

Array.prototype.unique=function(){
    var arr=[],n={};
    for(var i=0;i<this.length;i++){
       if(!n[this[i]]){
         n[this[i]]=true; //存入hash表 
         arr.push(this[i]);
      }
    }
   return arr;
}

 

三) 先把数组用sort排序 ,然后比较相邻的值 

Array.prototype.unique=function(){
   var n=[];
   this.sort();
   for(var i=0;i<this.length;i++){
     if(this[i]!=this[i+1]){
        n.push(this[i]);
     }
   }
   return n;
}

var array=[5,33,6,7,33,22,8,1,5];
var arr=array.unique();
console.log(arr);

 

转载于:https://www.cnblogs.com/alice626/p/5279500.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值