前端相关我爱编程

3. js数组去重方法

2018-04-16  本文已影响0人  星星的成长之路

数组去重

删除数组中的重复项;
方法一:注意indexOf的兼容
var arr=[1,1,2,2,44,55,3,3];
var arr1=[];
for(var i=0;i<arr.length;i++){
  if(arr1.indexOf(arr[i]) === -1){
    arr1.push(arr[i]);
  }
}
console.log(arr); //Array [ 1, 1, 2, 2, 44, 55, 3, 3 ]
console.log(arr1); //Array [ 1, 2, 44, 55, 3 ]
方法二:修改原数组
var arr=[1,1,2,2,44,55,3,3];
var obj={};
for(var i=0;i<arr.length;i++){
  var current=arr[i];
  if(obj[current]){
   arr.splice(i,1); //删除掉重复的元素,注意数组塌陷啊!
    i--;  //避免数组塌陷,阻止数组跳过去
    continue;
  }
  obj[current]=current;
}
console.log(arr); //Array [ 1, 2, 44, 55, 3 ]
方法二优化:
var arr=[1,1,2,2,44,55,3,3];
var obj={};
for(var i=0;i<arr.length;i++){
  var current=arr[i];
  if(obj[current]){
    arr[i]=arr[arr.length-1];  //把最后一项挪到准备删除的那一项
    arr.length--; //把最后一项删除掉
    i--;  //避免数组塌陷,阻止数组跳过去
    continue;
  }
  obj[current]=current;
}
console.log(arr);
上一篇 下一篇

猜你喜欢

热点阅读