「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」。
我个人觉得要想进大厂,就必须学习了解算法和数据结构,经历了多次面试之后,也知道了算法和数据结构的重要性,所以,我也打算从今天开始,进入学习,下载了一下电子书,边看书,边跟着书的例子来敲一下代码,下面就开始总结一下对算法和数据结构的学习吧。
第一天:开始了解数组
要使用js学习数据结构与算法,数组是我们需要了解的一个前提,所以我们先学习数组。
对于前端来说,数组一定不陌生,几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构。现在就让我们来再好好学习一下数组吧。想一想,如果没有数组,你怎么存每个星期的平均工作时间。有可能,你会这么操作:
const timeMon = 6;
const timeTue = 7;
const timeWeb = 8;
const timeThr = 9;
const timeFri = 10;
...
这可定不是一个很好的方案,如果我们要存几个月的平时工作时间呢?或者几年?这个时候,数组就是一个很好的解决方案。
const time[0] = 6;
const time[1] = 7;
const time[2] = 8;
const time[3] = 9;
const time[5] = 10;
...
数组可以存储一系列同一种数据类型的值。虽然在 JavaScript 里,也可以在数组中保存不同类型的值,但我们还是遵守最佳实践,避免这么做(这是因为大多数语言都没这个能力)。
下面我们看一下数组的创建、自带的属性、访问、应用
创建数组有两种方式:
1. const arr = new Array()
2. const arr = []
要想知道数组的长度
arr.length
如何访问数组
arr[数字]
比如:arr[0] (数组的下标从零开始)
循环数组
for(let i = 0; i < arr.length; i++) {
console.log(arr[i])
}
应用的例子:
输出斐波那契数列的前20
已知斐波那契数列中的前两项是 1, 从第三项开始,每一项都等于前两项之和。
const fibonacci = [];
fibonacci[0] = 1;
fibonacci[1] = 1;
for (let i = 2; i < 20; i++) {
fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2];
}
for (let i = 0; i < fibonacci.length; i++) {
console.log(fibonacci[i]);
}
console.log(fibonacci[i]) // [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181]