为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第1天

标签:
JavaScript

课程名称:前端校招面试攻略,无惧层层考核,实现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的各种方法https://img1.sycdn.imooc.com//62e923fa0001ff9a22321300.jpg









点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消