二、(4)JavaScript数组
JavaScript-数组
1. 数组(重点)
1.1. 数组的定义
数组是一组数据有序排列的集合。将一组数据按一定顺序组织为一个组合,并对这个组合命名,这样便构成了数组。
- 数组元素:组成数组的每一个数据称为数组的一个数组元素。
- 数组索引:每一个数组元素对应一个整数值,称为数组元素索引,或者数组元素下标。元素索引为非负整数,由0开
- 始依次增加,即第一个元素索引为0,依次为1,2等。
- 数组元素的访问:对数组中各个元素,使用数组名加上以方括号”[ ]”括起来的元素索引进行访问。元素索引为元素在
- 数组中的位置序号。
- 数组的长度:数组元素的个数称为数组的长度。
- 数组是复合数据类型,都可以保存多个数据。
语法格式:
var arr1 = new Array();//定义一个空数组 var arr2 = new Array(1,25,37,46,95);//定义了一个具有5个元素的数组 console.log(arr2); //这种写法较简练,并且使用很普遍 var arr3 = [1,3,5,7,9];//创建了一个带有5个元素的数组
1.2. 内存分布
使用场景:需要将多个类型一样的数据一次性告诉计算机让其保存时使用数组类型。
1.3. 访问数组中的元素
语法:数组变量名[索引值]
例如:
arr2[1]
console.log(arr2[1]);
通过下标获取元素值,如果没有定义这个元素,则返回undefined
var arr = new Array(1,25,37,46,95);//定义了一个具有5个元素的数组 //比如获取arr中第2个元素的值: arr2[1]; arr[5];//返回undefined,因为arr最大下标为4,并没有5,所以会返回undefined
1.4. 访问数组长度
语法:数组变量名.length;
例如:
var len = arr.length;
1.5. 删除数组中的元素
语法:
delete 数组变量名 [索引](注:只清空数组元素,保留位置)
数组名.splice(索引位置,删除数量);(注:清除数组和内容,不保留位置)
例如:
delete arr[2];
使用delete删除数组元素与为其赋值为undefined类似。
使用delete删除元素并不会修改length属性。
清空数组:
arr = []; 或 arr.length=0;
1.6. 修改和增加元素
语法:数组变量名称[索引] = 值
例如:
var names=new Array('张三','李四','王五); names[2]='小何';//修改下标为2的内容 names[3]='小东';//在下标3处增加一个小东
1.7. 数组的遍历(重点)
定义:所谓数组的遍历就是挨个取出数组中每个下标对应的每一项。
for语法结构:
for(var i = 0; i< 数组变量.length;++i){ var 元素变量 = 数组变量[i]; }
forEach语法结构:
数组名称.forEach(function(value,index){ value : 数组元素 index : 索引 })
例如:
//使用自变量方式创建数组 len=arr[]=["number","string","boolean","ubdefined","null","NaN"]; //遍历数组 for(len i=0;i<arr.length;i++){ var arrNum=arr[i];//所有数组元素 console.log(i);//索引 console.log(arrNum); } arr.forEach(function(value,index){ console.log(index);//索引 console.log(value);//数组元素 });
1.8. 课堂练习
练习一:数组为:[1,3,5,7,24,32,25,48]
1.求数组奇数的个数和偶数的个数
2.求出上面数组的平均值
练习二:设计一个数组中的最大值的功能
[1,3,5,79,11]
[-3,-5,-7,-121]
2. 二维数组
2.1. 二维数组定义
二维数组本质上是以数组作为数组元素的数组。
分布图:
2.2. 常见二维数组的使用方法
访问二维数组中的具体元素:
group[x] : 访问到二维数组中索引为x数组类型的元素
group[x][y]: 访问到二维数组中索引为x数组类型的元素,然后再通过y访问到数组类型元素中具体一个元素.
向二维数组中添加元素
通过新的索引为数组中添加具体的元素
修改数组中的元素
通过已有索引修改数组中的元素
二维数组的遍历
2.4. 二维数组实例
找出以下数组中最大值及最大值对应的索引值:
var group = [
[80,92,92],
[61,65,71],
[59,99,70],
[85,87,90],
[76,77,88]
];
2.5. 数组自身常用方法(重点)
数组自身函数是系统已经为数组定义好的方法,可以通过数组直接调用的方法.以下函数必须通过数组调用执行。
1 .concat(arrayX,arrayX,......,arrayX)
arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。
连接两个或更多的数组,并返回结果。
2 .join(separator)
separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
3 .pop()
删除并返回数组的最后一个元素
4 .push(newelement1,[newelement2]….)
newelement1 必需。要添加到数组的第一个元素。
newelement2 可选。要添加到数组的第二个元素。
…. 可选。可添加多个元素。
向数组的末尾添加一个或更多元素,并返回新的长度。
5 .reverse()
颠倒数组中元素的顺序。 但该方法不会创建新的数组
6 .splice(index,howmany,element1,.....,elementX)
index:
必需。规定从何处添加/删除元素。
该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany :
必需。规定应该删除多少元素。必须是数字,但可以是 "0"。
如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
element1:
可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入。
elementX:
可选。可向数组添加若干元素。
删除元素,并向数组添加新元素。
3. 作业
3、求数组的最小值 arr = [23,3,5,7,243,1,25,48];
4、(数组)定义一个数组,并给出8个任意的初始数值,求该数组中大于平均值的数的个数,和小于平均值的数的个数。(要求:1.要使用两个for循环来制作 2.For(){} 用于算平均值 3. For(){} 比较大小)
5、(数组)定义一个数组,输入9个任意的整数,求该数组中奇数的个数和奇数的平均
值。
6、(二维数组,逻辑,偏难)//求该数组的平均值,最大值,最小值
var arr = [
[12,43,23,123],
[54,54,23,64],
[86,67,34,23]];