手记

【学习打卡】第1天

课程名称:前端校招面试攻略,无惧层层考核,实现Offer零距离

课程章节: 第3章 JavaScript面试题【前端三大基石中的重中之重】

主讲老师:freemen

课程内容:

今天学习的内容包括:


如何实现多种方式数组去重


课程收货:

去重的目的:1. 主要是为了应付面试 2. 后端同学给出重复数据



原数组:[1,2,3,4,5,3,4]


方法一:使用filter和indexOf函数

function unique(array){

    if(!Array.isArray(array)){    

      throw new Error("unique function params is not aaray")  } //错误处理

    return array.filter((item,index)={      

      return array.indexOf(item) === index   //遍历到重复的元素时,索引跟第一次不匹配就过滤掉

    })

const res = unique(array) 

console.log(res)  //[1,2,3,4,5]


方法二:相邻元素排序 使用sort和push

functionn unique(array){

   if(!Array.isArray(array)){    

      throw new Error("unique function params is not aaray")  } //错误处理

      array = array.sort()   //将数组排序

      let res =  []; //建立空数组

     for ( let i = 0; i<array.length; i++){

        if(array[i] !== array[i-1]{  //如果当前项不等于前一项则把当前项加入到空数组中 

          res.push(array[i])

        }

     }

  return res

}


方法 三:Set + 解构赋值或者+Array.from

functionn unique(array){

  //先做错误处理这里省略

  return [...new Set(array)]  //或者return Array.from(new Set(array)) 也一样

}


心得:挺难的,手写题需要理解,多练习~ 要数量掌握JS的各种方法









0人推荐
随时随地看视频
慕课网APP