js-数组中去掉重复的

Posted

tags:

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

关于一个固定的已知的数组例如:var arr = [‘name‘,‘OK‘,‘123‘,‘n‘,‘look‘,‘777‘,‘n‘,‘123‘,‘name‘,1,3,5,1,‘OK‘];

那么问题来了,我们怎么能去掉重复的字符串或者数字,得到新的数组呢!

方法①:

function takeRepetition_1(arr){
  var data= {};  //这里会遍历data的arr[i]属性 因为data为空 理所当然返回undefined
  var result = [];
  for(var i=0;i<arr.length;i++){
    if( !json[arr[i]] ){
      json[arr[i]] = 1;  //所以当if满足!undefined 即为true的时候 给data的arr[i]的属性的值设定为1
      result.push( arr[i] ); //然后放入结果数组里 所以当arr数组中有重复的值时 if不满足条件 就不会添加到数组了
    }
  }
  return result;
}
console.log(unqiue(arr));

 


方法②:
Array.prototype.takeRepetition_2 = function() {  //两次循环遍历数组,取值做等比比较
  var a = [];
  var l = this.length;
  for(var i = 0 ;i< l; i++)
    for(var j = i + 1 ;j < l; j++) {
      if (this[i] === this[j]) {

        j = ++i

      }
    }
    a.push(this[i]);
  }
  return a;
}
console.log(arr.takeRepetition_2());

 

方法③:

Array.prototype.takeRepetition_3 = 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.takeRepetition_3());

 

好啦 欢迎大家有不同的方法一起讨论哦!~~~~~

以上是关于js-数组中去掉重复的的主要内容,如果未能解决你的问题,请参考以下文章

js 去掉数组对象中的重复对象

JS去除数组中重复的数字

如何去掉一个数组的重复元素:数组去重

高效率去掉js数组中重复项

js去掉数组中重复的元素

高效率去掉js数组中重复项