2020-09-15

6数组
6.1 数组的概念
案例:计算五名同学的平均分

这个程序非常简单,但是如果要计算100人的呢?
要复制100编吗?
我们要用到循环
但是循环好像做不了,因为无法去控制变量a1,a2,
也就是说无法将循环变量和变量a1,a2联系起来

这段代码能够实现同样的功能,而且如果是100人的话,
只需要把循环的条件改成i<100即可,整个程序的结构
和代码量与人数的多少没有关系
为什么没有关系呢,因为和循环结合了
为什么和循环结合了呢
因为我们把变量的表示方式改变了,改变成名称加序号
的方式(a[0],a[1],a[2]……)这样的话序号就可以用循环来
控制
6.2 数组的定义与元素访问
怎么写?
定义数组有三种方式
(1)var a=[];
(2)var a=new Array();
(3)var a=[0,1,2,3,1];
如何访问数组中的元素?
A[0]=0
A[1]=1
A[4]=1
我们在使用数组的时候要注意一个下标问题,5个元素的
数组,下标只有0~4,不包括5,5已经下标越界了
数组的本质:一组变量的集合,或者说是一组内存单元
只不过对与变量的表示方式使用的是数组名加下标的方式
案例:计算方差

6.3 数组的常用属性与方法
数组的属性:
Length:
告诉我们数组的长度:数组名.length
通过该属性可以改变数组的长度
数组的常用方法
unshift:在数组的头部添加元素,返回值返回的是新
数组的长度
Shift:删除数组头部的元素,返回值是刚刚删除的元素

indexOf:查找在数组中重复出现的元素第一次出现的位置
lastindexOf:查找在数组中重复出现的元素最后一次出现的位置

push:在数组的尾部插入元素,返回值是添加元素后数组的长度
pop:从数组的尾部删除一个元素,返回值是删除的元素

slice(开始位置的下标,结束位置的下标)
提取数组中指定连续的子数组,前面包括,后面不包括

splice(开始删除位置的下标,要删除元素的长度,要选择插入或替换的内容)
splice有“剪接”的含义,前面两个参数定义的是“剪”的部分
第三个参数定义的是“接”的部分,经过不同的参数组合,就能实现
以下三个功能:
删除操作,删除数组中指定的任意元素
插入操作,在数组中指定的位置插入元素
替换操作,在数组中替换指定位置的元素

reverse,将数组中的元素,反序输出,在原数的基础上进行反序输出
不会创建新数组的

6.4 二维数组

6.5 数组遍历
1)普通遍历

2)forEach遍历

For in

6.6 数组的不常用方法
1)map

filter

reduce

案例:查找指定数
要求:想想如果数组里没有想要的元素怎么办

案例:优秀班级
描述:有三个班级,每个班级有十人,输出各班的平均分和优秀班级是哪个班
优秀班级:平均分最高
每个班的分数自己写
提示:二维数组
6.7 数组排序
1)sort()以从小到大的顺序排列数组
对数字排序:从小到大
对字母排序:从A到B 大写字母在前
数字字母混合:先排数字,再排字母
通过sort可以找出数组的最小值(xxx[0])
和数组的最大值(xxx[xxx.length-1])
但是,有一个缺点:只能排同样位数的数

2)比值函数
可以自定义排序顺序
Function(m,n){
Return m-n;
}

3)reverse():反转数组元素
顾名思义,就是把数组的元素从头到尾反转

案例:据学生的考试成绩,计算最高分、最低分、平均分和标准差。
Var classCount = 20;
Var classScore = [82,56,87,96,85,74,23,56,59,85,78,78,74,29,98,100,46,42,85,69]
7 事件
7.1 事件的概念
事件源
事件名
事件注册
事件处理
以火灾为例
XX大酒店201房间发生火灾,打119电话报警,xxx消防大队出警
赶到现场通过喷水作业成功灭火
事件源:XX大酒店201房间
事件名:火灾
事件注册:规划片区,由xxx消防大队负责
事件处理:喷水
7.2 常用事件
鼠标常用事件
单价事件onclick

在这个案例中,事件源是id‘为“p1”的元素,事件名是单击
事件注册οnclick=“fun()”,也就是说,当单击id为“p1”的
元素时,交给fun函数来处理。
双击事件:ondblclick

(3)鼠标按下/抬起(onmousedown/onmouseup)

(4)鼠标移入/离开(onmouseenter/onmouseleave)

(5)onmouseover onmouseout
与onmouseenter、onmouseleave很类似,区别后面再讲。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值