与我联系

使用js给数组去重的4种常用方法

2015-6-14 一诺 js+jquery+ajax

        之前我在博客园发表过一篇使用js给数组去重的3种常用方法,今早起来无事便又写出一种数组去重的方法,其实也是新瓶装旧酒,在这里再总结下吧!


首先还是定义一个数组,以供下面四种方法调用

var arr=['js','js','js','html','js','java','html5','c#','c#','css','html','js'];


1,方法一:简单易理解

Array.prototype.unique1=function(){
  var newArr=[this[0]];
  for(var i=0;i<this.length;i++){
    var fix=true;
    for(var j=0;j<newArr.length;j++){
      if(newArr[j]==this[i]){
        fix=false;
      }
    }
    if(fix){
      newArr.push(this[i]);
    }
  }
  return newArr;
}
console.log(arr.unique1());


2,方法二:不使用新数组

Array.prototype.unique2=function(){
  for(var i=0;i<this.length-1;i++){
    for(var j=1;j<this.length;j++){
      if(this[i]==this[i+j]){
        this.splice(i+j,1);
        j--;
      }
    }
  }
  return arr;
}
console.log(arr.unique2());


3,方法三:使用了字符串的indexOf()方法判断

Array.prototype.unique3=function(){
  var n = []; //一个新的临时数组
  for (var i= 0;i<this.length;i++){
    //如果当前数组的第i已经保存进了临时数组,那么跳过,
    //否则把当前项push到临时数组里面
    if (n.indexOf(this[i]) == -1) n.push(this[i]);
  }
  return n;
}
console.log(arr.unique3());


4,方法四:此方法改变了数组的顺序

Array.prototype.unique4 = function(){
  this.sort();
  var re=[this[0]];
  for(var i=1;i<this.length;i++){
    if(this[i]!==re[re.length-1]){
      re.push(this[i]);
    }
  }
  return re;
}
console.log(arr.unique4());


标签: 数组

分享这篇文章
赞助鼓励:如果觉得内容对您有所帮助,您可以支付宝(左)或微信(右):

声明:如无特殊注明,所有博客文章版权皆属于作者,转载使用时请注明出处。谢谢!

发表评论:

皖ICP备15010162号-1 @2015 勿恨水长东
qq:1614245331 邮箱:13515678147@163.com Powered by
emlog