学习js数据结构与算法-数组(1)

123 阅读2分钟

「这是我参与2022首次更文挑战的第2天,活动详情查看:2022首次更文挑战」。

个人觉得要想进大厂,就必须学习了解算法和数据结构,经历了多次面试之后,也知道了算法和数据结构的重要性,所以,我也打算从今天开始,进入学习,下载了一下电子书,边看书,边跟着书的例子来敲一下代码,下面就开始总结一下对算法和数据结构的学习吧。

第一天:开始了解数组

要使用js学习数据结构与算法,数组是我们需要了解的一个前提,所以我们先学习数组。

对于前端来说,数组一定不陌生,几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构。现在就让我们来再好好学习一下数组吧。想一想,如果没有数组,你怎么存每个星期的平均工作时间。有可能,你会这么操作:

const timeMon = 6const timeTue = 7const timeWeb = 8const timeThr = 9const timeFri = 10;
...

这可定不是一个很好的方案,如果我们要存几个月的平时工作时间呢?或者几年?这个时候,数组就是一个很好的解决方案。

const time[0] = 6const time[1] = 7const time[2] = 8const time[3] = 9const 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]