利用数组去重的几种方法

  1. 利用indexOf()
  2. 利用filter+indexOf()
  3. 利用Array.from(new Set(数组))

  /* 思路:遍历旧数组,利用indexOf特性查找新数组有没有这个值,没有的话添加到新数组里面 */
  //第一种
    var arr1 = [1, 2, 4, 5, 44, 5, 6, 6, 2, 3]
    var arr2=[]
    arr1.forEach(i=>{
      if(arr2.indexOf(i)===-1){
        arr2.push(i)
      }
    })
    console.log(arr2);
//第二种
// 利用filter来去重封装函数
    function uniques(arr) {
      var res = arr.filter((item, index, array) => {
        return array.indexOf(item) === index
      })
      return res
    }
    var arr3= uniques(arr1)
    console.log(arr3);
 // set封装
    function uniquess(arr) {
      //Set数据结构,它类似于数组,其成员的值都是唯一的
      return Array.from(new Set(arr)) // 利用Array.from将Set结构转换成数组
    }

    var arr4 = [1, 2, 4, 5, 44, 5, 6, 6, 2, 3]
    console.log(uniquess(arr4));

猜你喜欢

转载自blog.csdn.net/weixin_47389477/article/details/106906602