结尾
学习html5、css、javascript这些基础知识,学习的渠道很多,就不多说了,例如,一些其他的优秀博客。但是本人觉得看书也很必要,可以节省很多时间,常见的javascript的书,例如:javascript的高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
高级程序设计,是每位前端工程师必不可少的一本书,边看边用,了解js的一些基本知识,基本上很全面了,如果有时间可以读一些,js性能相关的书籍,以及设计者模式,在实践中都会用的到。
let arr3 = [1,2,3,[4,5],[6,7,[8,9]]]
有时候我们需要将这些数组转化成一维数组,这个过程就叫做数组扁平化。
以下就是几种常见的数组扁平化的方法:
1、递归法
思想:遍历数组,判断数组的某项是否还是数组,如果不是,直接放入新数组里面,如果该项是数组,则继续将该项的数组进行遍历,递归调用同样的方法,将结果与上层结果进行拼接。
//定义一个数组扁平化函数
function flatten(arr){
var res = []
for(var i=0; i<arr.length; i++){
if(Array.isArray(arr[i])){ //判断数组里面的项是否还是数组
res = res.concat(flatten(arr[i])) //如果是,递归执行扁平化函数
}else{
res.push(arr[i]) //如果不是,则将该项放入新数组中
}
}
return res
}
let arr = [1,2,3,[4,5],[6,7,[8,9]]]
let res = flatten(arr)
console.log(res)
2、ES6扩展运算符(…)
扩展运算符可以对数组进行展开,如
let arr = [1,2,3,4,5]
console.log(…arr) //1,2,3,4,5
根据这个思想,我们可以对多维数组进行一层层展开,如
let arr = [1,2,3,4,[5,6]]
console.log(…arr) //展开最外层 1 2 3 4 [5,6]
每使用一次扩展运算符,会展开一层,这样我们可以多次使用,使得数组里面的数组全部展开。
tips:some()方法是判断数组中的某一项是否满足某个条件,有一个条件满足,则返回true。
function flatten(arr){
while(arr.some(item => Array.isArray(item))){
console.log(arr) //控制台打印,看每一步的结构
arr = [].concat(…arr)
}
return arr
总结
三套“算法宝典”
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
算法刷题LeetCode中文版(为例)
人与人存在很大的不同,我们都拥有各自的目标,在一线城市漂泊的我偶尔也会羡慕在老家踏踏实实开开心心养老的人,但是我深刻知道自己想要的是一年比一年有进步。
最后,我想说的是,无论你现在什么年龄,位于什么城市,拥有什么背景或学历,跟你比较的人永远都是你自己,所以明年的你看看与今年的你是否有差距,不想做咸鱼的人,只能用尽全力去跳跃。祝愿,明年的你会更好!