【零基础JavaScript教程】#10 什么是 JavaScript Array?巧用JavaScript数组存储一系列的值 (陣列的運用) | Intro to JavaScript Array

https://youtu.be/b5nKUr-3k4c


今天我们来聊聊JavaScript里其中一个很重要的数据类型,那就是数组Array。所有编程语言都会提供数组Array让程序储存数据,所以JavaScript也不例外。Array能让程序储存更多的数据。你可以把Array想象成一长串的数据,Array能同时储存上百上千个数据,比起单一的基础数据类型,像Number或者Boolean, 在同一时间只能储存一个数据,Array的存储功能会比基础数据类型更强大。

☕ ☕ ☕ 如果觉得这些教学对你有用,那就请我喝杯咖啡吧! 我会继续为你创作更多免费的编程教学视频,让你轻松入门编程。 ✅ https://bit.ly/3kCOpFK ✅ (免费) JavaScript教程系列: https://bit.ly/310cHle ✅ 更多精彩的JavaScript入门课程: http://bit.ly/js-for-beginners ✅ JavaScript相关书籍: 1:The Definitive Guide: Master the World's Most-Used Programming Language - 7th Edition (强烈推荐👍) https://amzn.to/31s30uH ✅(通告)”Codetisan 自学编程社区“ 已经正式开通啦,三人行必有我师,同学们再也不用独自一人闷头自学编程了,快去社区里和其他小伙伴们互动吧! ▶︎ https://bit.ly/2AHylzN 🔆订阅我的YouTube频道,让你从一个0基础编程的菜鸟快速成为编程大师!🔆 http://bit.ly/2TBkXo1 ▶︎ 文轩解码更精彩的平台 ◀︎ ‣‣ Blogger :https://bit.ly/2yMz0PC ‣‣ Twitter: https://bit.ly/2R74FS1 ‣‣ Facebook: https://bit.ly/35crcmz ‣‣ Instagram: https://bit.ly/2KH6Wjw ‣‣ Github: https://bit.ly/2SHtsx4 #javascript数组array #编程入门 #javascript入门


文字版本:

Hi, 大家好,我是文轩

欢迎再次收看文轩解码

如果你想和其他同学一起

学习和讨论JavaScript编程

欢迎扫描这个二维码

去到自学编程社区里和其他同学一起互动

今天我们来聊聊JavaScript里

其中一个很重要的数据类型

那就是数组Array

所有编程语言都会提供数组Array

让程序储存数据

所以JavaScript也不例外

Array能让程序储存更多的数据

你可以把Array想象成一长串的数据

Array能同时储存上百上千个数据

比起单一的基础数据类型

像Number或者Boolean

在同一时间只能储存一个数据

Array的存储功确实会比基础数据类型更强大


我们来看看这张图

这是Array的基本结构

这个Array一共有3个空间可以储存数据

它的长度是3

在JavaScript里

这些空间称之为元素Element

当我们说数组元素的时候

就是代表数组里储存的数据

一般数组里会有好几个元素

为了方便我们读取和管理这些元素

我们需要为这些数据进行编号

在JavaScript里

这些编号称之为索引 index

每一个元素都有各自的索引

索引只能用数字去表示

第一个元素的索引是从0开始

第二个元素是1

第三个元素是2

接下来

我们切换到VS Code尝试创建这张图里的数组

要创建Array,我们可以使用new Array() 语句

又或者是方括号 []

一般在JavaScript里会选用第二种语法

因为用方括号创建Array会更简洁直观

Array创建完后需要将它赋予一个变量

我们先声明一个变量fruits

然后用方括号创建Array

这个Array将用来储存水果的名字

每一个Array元素需要用逗号隔开

我们这里输入Apple字符串

然后逗号

接下来再输入Banana字符串

逗号

然后再输入Orange字符串

最后一个元素的结尾一般都不输入逗号

好的,现在我们来保存刷新页面

看看fruits里的元素

console这里输出3 和 fruits变量里的所有元素

有Apple,Banana和Orange

这个3代表数组里有几个元素

就是我们所说的数组长度

我们还能用.length去验证数组里是不是有3个元素

像这样

嗯,console这里是打印3

因为fruits数组里一共就只有三个元素

接下来,如果我们要读取fruits数组里的元素

那我们该怎么做呢?

如果要读取数组里的元素

我们可以用索引 index,像这样

fruits[0]

这样的话,我们就能读取第一个元素

同学们这里要注意

第一个元素的索引是0

我们现在把全部的元素都打印出来吧

我们保存刷新代码

看看是不是按顺序输出Apple,Banana和Orange

对的,console这里是输出

Apple,Banana和Orange  

接下来,我们来看看要怎么更改数组里的数据

假设我们要把Banana替换掉

把它换成Watermelon

我们可以这样表示

这行语句和我们赋予变量数值或者Boolean是一样的

Banana元素是在这个位置

index是1

所以这行代表

请把在fruits数组里索引是1的数据

换成Watermelon字符串

那现在我们来确认一下看看数据是否被更新了

嗯,Banana换成了Watermelon

刚才我们学习了怎么创建Array

怎么读取和更新现有数据

那接下来我们看看要怎么添加和删除数组里的元素

我们先看怎么增加数据吧

一般我们都会把数据添加在数组的尾部

要添加新元素,我们可以使用push

我给你们演示一下

如果要往fruits数组再添加一种水果,我们可以输入

fruits.push()

在小括号这里输入要添加的水果名

我们来添加芒果吧

水果名属于字符串

所以需要把Mango放在双引号里

我们来确认一下Mango有没有被添加到fruits数组里

嗯,是有的,新数据被添加到数组的尾部了

我们现在一共有4种水果

push是可以同时添加好几个元素的,像这样

嗯,这两个新元素也成功被添加到数组里了

除了能在尾部添加数据

我们也能在头部添加

如果想在头部添加数据的话

我们就要使用unshift()

这一次,我们在头部添加cherry吧

接下来我们看看fruit里的数据

嗯, fruits的第一个元素变成了Cherry

虽然push 和 unshift的功能一样

但在性能方面push会比unshift高效

这是因为push在尾部添加新元素时候

不需要大费周章的移动现有的数据

而unshift在头部添加新元素的时候

现有的元素需要往尾部方向移动

腾出空间给新元素

如果数据量很大

像好几万个元素

每unshift一次

就要移动好几万个元素

这样程序的性能肯定会折损

除非有特殊需求

不然初学者还是建议使用push添加新数据

接下来,我们说说怎么从Array删除元素

和添加新元素一样

我们也能从尾部或者是头部删除元素

先来演示怎么从尾部删除

要从尾部删除数据,我们可以使用pop,像这样

fruits.pop()

嗯,最后一个元素Lemon被删除了

如果要从头部删除Cherry的话,我们可以使用shift

fruits.shift()

嗯,Cherry从头部里被删除了

pop和shift都能从数组里删除数据

但shift和unshift一样

需要移动现有数据

在删除头部数据后

需要往头部方向移动现有的数据

填补Cherry腾出的空位

至于pop

它只是从尾部删除数据

不用移动任何的数据

还是那一句话,除非有特殊需求

不然还是建议初学者使用pop删除数组里的元素

数组能让我们储存更多的数据

但这样数据要怎么套用呢?

我给你们举个例子

假设我们有一组数据

数据里储存了7天的产品销量

假设我们要统计这7天的总销量

我门该怎么编写这个程序呢?

首先我们要选用合适的数据类型

去储存这7天的数据

这些销量都是数值

最简单但不建议的方法就是用7个变量储存

let sales1 = 100

let sales2 = 50

这样做的话扩展性实在是太低了

如果要计算一年的数据

那不得声明365个变量?

遇到这种问题,一般都会使用数组Array

这样我们就能用一个变量储存多个数据

那现在我们来声明一个变量sales

然后把数组赋予这个变量

在数组里,我们输入七天的销量

好的,我们的销量现在储存在sales变量里了

接下来,我们就需要从sales数组里读取每一个元素

计算它们的总和

一般我们会用for循环读取这些元素

我们再声明一个变量

用来保存总销量

默认值为0

那接下来我们插入一个for循环

在变量初始化的部分

声明一个变量i

初始化值为0

这里我要重点说一下

为什么这里是0不是1

这是因为数组的索引是从0开始

第一个元素的索引是0

第二个元素的索引是1

从0开始的话

我们的循环就能从数组的头部一直到尾部提取数据

for 循环第二部分是终止条件

sales数组一共有7个元素

最后一个元素的索引是6

一般我们都会这样输入终止条件

i < sales.length

sales.length会返回sales数组的长度

这样我们就不需要手动输入数组的长度

i是从0开始

只要i 小于 7

循环就会一直执行下去

第三部分就是变量递增部分

这里我们直接输入i++

接下来,我们要在循环体里插入计算总销量的语句

totalSales = totalSales + sales[i]

一旦遇到这样的语句

首先我们要计算等号右边的部分

我们来模拟一下这个算法

首先进入第一个循环

totalSales值为0,i值为0

sales[0]指的是sales Array 里索引为0的元素

索引为0的元素的值是100

所以最终这个会演变成0 + 100

0 + 100 等于100

计算完毕后,100会被赋予totalSales变量

然后再i++

完成第一个循环后

现在进入第二个循环

现在totalSales值是100

i值是1

sales数组索引是1的值是50

100加50等于150

150最终赋予totalSales

按这样的演算,最终总销量为830

好的,我们来总结一下今天的分享

我们可以使用方括号创建数组Array

因为这是最简洁,最直观的方式

数组的索引是从0开始

第一个元素的索引是0

第二个元素的索引是1 

以此类推

可以使用sales.length(不需要小括号)返回数组的长度

建议初学者使用

.push()和.pop()去添加或删除元素

好的,今天的分享就到这里

有疑问的话欢迎去到自学编程社区里提问

喜欢这个视频就帮忙点赞分享吧

我们下期见,拜拜!



Comments

Popular posts from this blog

【编程入门】使用 HTML CSS 制作登录页面 (零基础菜鸟必看) | How to create a login form in html css

怎么制作网页?仅使用html css制作你人生第一个专属网页 (免费网页设计教程) | How to create a website for free | 网页编程系列 第1集

2021 網頁編程自學小白要怎麼學才能真真快速入門編程? (內附路線圖+ 3個王牌技能) | Web Development Roadmap For Beginners 2021