9.21

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:

  1. 告诉我们数组的长度:数组名.length
  2. 通过该属性可以改变数组的长度

数组的常用方法

  1. unshift:在数组的头部添加元素,返回值返回的是新

数组的长度

       Shift:删除数组头部的元素,返回值是刚刚删除的元素

 

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

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

 

  1. push:在数组的尾部插入元素,返回值是添加元素后数组的长度

pop:从数组的尾部删除一个元素,返回值是删除的元素

 

  1. slice(开始位置的下标,结束位置的下标)

提取数组中指定连续的子数组,前面包括,后面不包括

 

  1. splice(开始删除位置的下标,要删除元素的长度,要选择插入或替换的内容)

splice有“剪接”的含义,前面两个参数定义的是“剪”的部分

第三个参数定义的是“接”的部分,经过不同的参数组合,就能实现

以下三个功能:

  1. 删除操作,删除数组中指定的任意元素
  2. 插入操作,在数组中指定的位置插入元素
  3. 替换操作,在数组中替换指定位置的元素

 

  1. reverse,将数组中的元素,反序输出,在原数的基础上进行反序输出

不会创建新数组的

 

6.4 二维数组

 

6.5 数组遍历

1)普通遍历

 

2)forEach遍历

 

  1. For in

 

6.6 数组的不常用方法

1)map

 

  1. filter

 

  1. reduce

 

案例:查找指定数

要求:想想如果数组里没有想要的元素怎么办

 

案例:优秀班级

描述:有三个班级,每个班级有十人,输出各班的平均分和优秀班级是哪个班

优秀班级:平均分最高

每个班的分数自己写

提示:二维数组

6.7 数组排序

1)sort()以从小到大的顺序排列数组

对数字排序:从小到大

对字母排序:从A到B 大写字母在前

数字字母混合:先排数字,再排字母

通过sort可以找出数组的最小值(xxx[0])

和数组的最大值(xxx[xxx.length-1])

但是,有一个缺点:只能排同样位数的数

 

2)比值函数

可以自定义排序顺序

Function(m,n){

       Return m-n;  

}

 

3)reverse():反转数组元素

顾名思义,就是把数组的元素从头到尾反转

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页