小程序编程第14课
教程
各位战友好,今天是我们的第14课,这节课我们学一个新的数据类型:数组
数组是什么东西呢?
使用单独的变量名来存储一系列的值
数组就像一个列表一样,比如下图
比如这是我一天要做的几件事情:看报,读书,洗脸,刷牙,吃饭
我们可以定义5个变量来存储这5件事情,但是我们如果有10件事情呢?或者100件事情呢?那我们是不是要定义10个变量,或者100个变量呢?
这太麻烦了!
我们想要把这些所有的事情存在一个变量里,这就需要用到数组,如果用数组来装这几件事如何装呢?
我们先打开小程序开发工具,打开调试器,切换console面板
let todos = ['看报','读书','洗脸','刷牙','吃饭']
等号左边我们能看懂,等号右边就是数组。右边是什么意思呢?就从格式上面来看,是有规律的。这里面有我们能看懂的东西,比如那些代办事项就是字符串。待办事项与待办事项之间有逗号分隔。第一个事项前面有一个中括号,最后一个事项后面也有一中括号。
我们把这里的代办事项成为数组的元素,这里的每个元素都是有编号的。排在第一的元素它的位置是0,也就是看报
的位置是0,读书
的位置是1,洗脸
的位置是2,以此类推
这有点违反我们的直觉,为什么排在第一的元素位置却是0呢?不应该是1吗?
这个我就不深究了,反正大多数编程语言的规定就是如此。所以要切记,位置是从0开始的。
那现在我们就创建了一个数组了。这个数组我们能干嘛呢?
我们可以访问数组的某个位置的元素。
比如我们想要知道位置2的元素是什么,我们该怎么写呢?
todos[2]
这样就能访问到这个todos数组的位置为2的元素了。执行返回了洗脸
,我们看看它的位置确实是2,那就是正确的。
那我们访问位置10的元素呢?目前位置10根本没有任何元素,那会出现什么情况?
我们试试
todos[10]
返回了undefined,也就是说未定义,我们的确没有定义位置10等于多少
我们还可以改某个元素的值,比如我们想把看报
改成玩手机
,那我们应该如何操作呢?
todos[0] = '玩手机'
因为看报的位置是0,所以我们可以像上面这样操作。
这样操作的意思也挺明显的,等号就是赋值的意思,我们把右边的字符串赋值给了左边的变量。只不过此时左边的变量是数组的某个位置而已
然后我们看看是不是改成功了,我们访问一下
todos[0]
发现返回的就是玩手机
,说明改成功了
那我们可以不可以增加一个元素呢?
比如我们想要在吃饭
后面增加一个元素写作
,我们该怎么操作呢?
todos.push('写作')
执行完之后,返回了数字6,这个意思就是现在的数组长度变成了6,也就是说目前数组里面装了6个元素
上面这句话的意思是啥呢?todos是一个变量,它也是一个数组,数组也是一个对象。数组自带一些方法(函数),就好像小孩天生就会吃喝拉撒一样。
todos.push的意思是访问push这个属性,因为push这个属性正好是一个函数,所以我们可以运用()来调用,然后传递了一个参数写作
,于是就增加成功了。
数组还有很多属性和方法,以后我们遇到再慢慢讲。
今天需要讲一个常用的属性,那就是数组的长度。
这个我们怎么获取呢?可以这样
todos.length
你可以看到返回了6,说明目前这个数组里面有6个元素。
数组里面的元素也像对象的属性值一样,可以是任何类型的东西。这里装的是字符串,实际上还可以装数字,还可以装对象,甚至还可以是数组。
这个数组有什么作用呢?
用处很大,比如今天提到的待办事项列表就是可以用到数组,比如我们还会用数组来存一些列表数据,比如客户信息,车辆信息,电影信息。每个客户是一个元素,每辆车就是一个元素,每部电影也是一个元素。
我们常常会结合循环来使用数组。
比如我们事先不知道这个todos数组中的洗脸
在什么位置,我们就可以通过循环来找到它,并打印出它的位置
比如结合for循环和if条件判断,我们就可以找到洗脸
的位置
for(let i = 0;i<todos.length;i++){
if(todos[i] === '洗脸'){
console.log(i)
break;
}
}
上面todos[i]
是什么意思呢?这个意思就是访问todos数组的第i个位置的元素。因为i是随着循环的变化而变化的,所以每一轮i的值都不一样,i是从0开始的,也就是从数组的0号位置开始访问,一直到数组结尾。
这里每一次循环都会判断todos[i]元素的值是不是等于洗脸
,如果是那就打印,并中断循环。
我们还可以定义一个空数组
let arr = []
这个数组里面,没有任何元素。我们可以一个一个push进去,比如利用循环往里面装1-10的数字
for(let i = 1;i<11;i++){
arr.push(i)
}
然后我们访问arr,我们发现arr就是长这样
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
关于数组就介绍到这里,留一个作业
作业
我们有一串数字列表的数组[234,12,4,6,4545,332,7560,78,89,99,909,34,255,488,76,5]
我们想要找到这串数字列表中大于100的数字。并把他们打印出来。这怎么做?
参考答案
let numbers = [234,12,4,6,4545,332,7560,78,89,99,909,34,255,488,76,5]
for(let i = 0; i<numbers.length;i++){
if(numbers[i]>100){
console.log(numbers[i])
}
}
上一篇: 【Tomcat】Tomcat的安装和部署
下一篇: Ubuntu18.04安装Docker
推荐阅读
-
小程序编程第14课
-
《面向对象程序设计——Java语言·翁恺》第3周编程题 查找里程
-
微信小程序实现获取验证码60S倒计时(学习微信小程序第n天)!
-
Java编程技巧:小爬虫程序(转) 博客分类: 设计 爬虫
-
Java语言程序设计(基础篇)(原书第10版) 第二章编程练习题
-
Java语言程序设计(基础篇)(原书第10版) 第三章编程练习题
-
Java语言程序设计(基础篇)(原书第10版) 第四章编程练习题
-
Java语言程序设计(基础篇)(原书第10版) 第七章编程练习题
-
试读《Objective-C程序设计(第6版)》 ———一本充满“强强”味道的编程书
-
Prolog小程序 编程RubyLISPSmalltalkScheme