数组去重的方法(持续更新中..........)

方法 1

//  方法 1     适合 一维数组   多维数组 去重  降维后  去重
var  arr = [1,2,3,4,5,6,6,7];

for(var i = 0 ,newArr=[];i<arr.length;i++){

//     利用indexOf()  查找第一次出现指定字符的下标  如果没有找到 返回  -1  

    if(newArr.indexOf(arr[i]) === -1 ){
    
         //数组的API push  方法    会往数组结尾添加 元素  并返回数组的长度
         
         newArr.push(arr[i])
         
     }
}
  console.log(newArr) // [1,2,3,4,5,6,7];-->返回新数组  不改变原数组

方法 2

var  arr = [1,2,3,4,5,6,6,7];

     for(var i = 0 ;i<arr.length;i++){
  
           for(var  j = i+1; j<arr.length;j++){
           
                if(arr[i]=== arr[j]){
                
                   arr.splice(arr[i],1)
                   
                        j--;
                 }       
             }
       }
       console.log(arr)//[1,2,3,4,5,6,7];
 /*代码 优化
  //  【前一个  值  和  后一个 作比较    如果相等  删除 其中一个】
     for(var i = 0 ,j = i+1;  j < arr.length && i<arr.length;j++,i++){
              if(arr[i]===arr[j]){
                   arr.splice(arr[i],1)     
                 }       
       }
*/

方法 三

//ES6 Set 对象        
//new  Set([iterable]); 
// 如果传递的参数是 一个可迭代的对象 它的所有元素将不重复的被添加到Set对象中 ,
//如果不指定此参数  或者 传入的值为 null ,则新Set为空 size为0    即   【**Set集合中的值是唯一的**】  
var  arr = [1,2,3,4,5,6,6,7];
//利用数组的解构  
//1.将  new Set()  返回的 集合  ---> 对象   
//2.将对象打散    放进数组中 
/*
  new  Set(arr)   --->  返回的 集合为 :{1, 2, 3, 4, 5, 6,7} 
*/
console.log([...new Set(arr)])//[1, 2, 3, 4, 5, 6, 7]

发布了6 篇原创文章 · 获赞 3 · 访问量 326

猜你喜欢

转载自blog.csdn.net/Fahgashdjhas/article/details/103292737