数组去重
方法一
1、依次拿出数组中的每一项(排除最后一项:最后一项后面没有需要比较的内容)
2、和当前拿出项后面的每一项依次比较
3、如果发现有重复的,我们把找到的这个重复项在原数组中删除掉(splice)
4、i-- 防止数组塌陷
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
   | var arr=[1,2,3,2,3,4,3,4,5]
 
 
 
 
 
 
 
 
  for(var i=0;i<arr.length-1;i++){     var item =arr[i];                                   for(var j=i+1;j<arr.length;j++){         if(item === arr[j]){             arr.splice(j,1);                                       i--;         }     } } console.log(arr)  
   | 
 
方法2:基于对象的属性名不重复来实现高性能的数组去重
1、创建一个空对象
2、依次遍历数组中的每一项,把每一项存储的值,当做对象的属性名和属性值存储起来
3、在存储之前我们先判断当前对象中是否已经存在这个属性名了,如果存在,说明之前有这一项存储的操作,说明重复了,此时我们把当前项在数组中删除即可
4、i--  防止数组塌陷
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
   | 
 
 
 
 
 
 
 
  var arr=[1,2,3,2,3,4,3,4,5] var json={}; for(var i=0;i<arr.length;i++){     var item=arr[i];          if(typeof json[item]!=='undefined'){     
 
 
 
 
          
 
 
          arr[i]=arr[arr.length-1];         arr.length-1;         i--;         continue;     }     json[item]=item; } console.log(arr)
 
  | 
 
方法三、Array.from(new Set(arr))
1 2 3 4 5
   |  var arr=[1,2,3,2,3,4,3,4,5]
  var arr2=Array.from(new Set(arr))  console.log(arr2)     
 
  |