【学习打卡】第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的各种方法
共同学习,写下你的评论
评论加载中...
作者其他优质文章