js实现数组去重(方式大汇总)

方法一:创建新数组

   var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
 3 Array.prototype.reArr = function(){
 4     var newArr = [];
 5     for(var i = 0; i < this.length; i++){
 6         if(newArr.indexOf(this[i])== -1){
 7             newArr.push(this[i]);
 8         }
 9     }
10     return newArr;
11 }
12 var arr2 = arr.reArr();
13 console.log(arr); //[ 1, 23, 1, 1, 1, 3, 23, 5, 6, 7, 9, 9, 8, 5 ]
14 console.log(arr2);//[ 1, 23, 3, 5, 6, 7, 9, 8 ]

方法二:利用对象属性存在的特性,如果没有该属性则存入新数组。

function unique3(arr){
 var res = [];
 var obj = {};
 for(var i=0; i<arr.length; i++){
  if( !obj[arr[i]] ){
   obj[arr[i]] = 1;
   res.push(arr[i]);
  }
 } 
 return res;
}
 
console.log('------------方法三---------------');
 
console.log(unique3([1,1,2,3,5,3,1,5,6,7,4]));

猜你喜欢

转载自www.cnblogs.com/web-record/p/9141373.html