数组去重的四种方法

方法一:

      //方法一:
          var arr=[1,2,3,4,5,1,2,3,4,5]
          var newArr=[]
          for(let i=0;i<arr.length;i++){
              if(newArr.indexOf(arr[i])===-1){
                  newArr.push(arr[i])
              }
          }
          console.log(newArr); 
  • 思路:
    1. 创建一个新数组
    2. 遍历老数组

    3. 把老数组里面的每一项放到新数组里面去,放的时候做一个判断。判断这个数组里面是否有这一项,如果没有就放到新数组里面。
    4. 得到的这个新数组就是去重后的数组

方法二:

      //方法二:
        var arr = [1, 2, 3, 4, 1, 1, 1, 3, 4, 5, 6]
         var newArr= arr.filter(function(item,index){
            return arr.indexOf(item) === index
          })
          //得到的新数组就是去重后的数组
          console.log(newArr);
  • 思路: 
    1. 利用filter方法遍历这个数组
    2. 因为indexOf查找只会返回匹配到的第一项下标,所以判断这个数组里面的每一项是不是有这个下标了
    3. return返回的这个新数组就是去重后的数组

方法三:

   //方法三:
        var arr = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
        //讲数组去重
        let set = new Set(arr)
        //得到是一个去重后的集合
        console.log(set);
        arr = [...set]
        console.log(arr);
       //=======================================
        //简写
        arr = [...new Set(arr)]
        console.log(arr);
  • 思路:
    1. ES6提出一种新的数据类型Set,他的特性是:不存储重复的数据
    2. 所以我们就可以利用他去重。把要去重的数组放到new Set(数组)里面,就能得到一个新的去重后的Set。
    3. 我们想要的是一个数组,所以要把set转换成一个数组。思路:
      1. 创建一个新数组
      2. 取出set里面的每一项,放到这个新数组里面去
      3. 得到的这新数组就是转换后的数组
    4. ES6可以利用展开运算符...快速取出每一项,然后再赋值给原数组,这样我们得到的这个原数组就是去重后的数组。

方法四:

 //方法四
          var arr1 = Array.from(new Set(arr)) 
          console.log(arr1);

        将一个类数组(伪数组)/ 可迭代的对象  转成数组结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值