一 、数组概念
例:定义多个变量表示学生的成绩,不便于同一维护
var stu1 = 59;
var stu2 = 60;
var stu3 = 70;
var stu4 = 80;
var stu5 = 45;
var stu6 = 50;
var stu7 = 55;
var stu8 = 61;
//.....100名学生就要定义 100个变量
//如何同时为每位同学的成绩加十分?
//如何计算班级平均分?
//如何将不及格的学生成绩改为及格?
[wm_warn]生活中的统一操作:军训(稍息,立正),打仗。反例:《让子弹飞》[/wm_warn]
二、定义数组
1、定义数组语法
【对比变量】
var 数组名称 = [];
例
var as = [];
2、创建数组时添加数据语法
var as = [数据1,数据2,数据3...];
例
var as = [59 , 60 , 70 , 80 , 45 , 50 , 55 , 61];
//在控制台输出as中的内容
console.log( as );
此时 as 就表示了一组数据
三、数组存取与删除
[wm_notice]有些时候数组由系统创建 或 无法在创建时得到数据并存入数据 此时必须通过数组提供的函数,当得到数据时再存入数组中[/wm_notice]
1、添加元素(数据 )
语法
数组名称.push( 数据 );
例:向数组中添加数据
var as = [];
//向数组中添加一个元素10
as.push( 10 );
//向数组中添加一个元素20
as.push( 30 );
as.push( 40 );
as.push( 50 );
//在控制台中输出 as
console.log( as);
数组中可以存储任何类型的数据与元素
2、获取元素(数据)
【数据存进去了,怎么用?之前用变量还有个名字,现在每个元素叫什么】
【数组叫什么?as,as[],中括号里写下标,as[下标 ],这就是元素的名字】
数组为每个元素都进行了编号,编号表示该元素在数组中的位置 在程序中我们称该编号为数组的下标 下标从0开始到数组长度-1结束,通过下标可以获取数组中的元素
语法
数组名称[下标];
例
var as = [50,10,800];
as[0];//数组中的第 1 个元素【第一个变量,名为as[0]】
as[1];//数组中的第 2 个元素【第二个变量,名为as[1]】
as[2];//数组中的第 3 个元素
var a1 = as[0];//提取数组中的第 1 个元素【提取变量,a1可以表示as[0]但不属于数组】
var a2 = as[1];//提取数组中的第 2 个元素【如a = 10, b = a; b变化不会影响a】
var a3 = as[2];//提取数组中的第 3 个元素
//输出数组中的第 1 个元素
console.log( as[0] );
//输出数组中的第 2 个元素
console.log( as[1] );
//输出数组中的第 3 个元素
console.log( as[2] );
使用循环遍历数组【重点】
[wm_tips]遍历数组:获取数组中的每一个元素[/wm_tips]
例:当数组元素很多时不便于统一操作
var as = [50,10,800];
//输出数组中的第 1 个元素
console.log( as[0] );
//输出数组中的第 2 个元素
console.log( as[1] );
//输出数组中的第 3 个元素
console.log( as[2] );
(重复的步骤放到循环中,不重复的步骤放到循环之外,有规律的变量想办法用循环变量替代)
例:使用循环遍历【重点】
var as = [50,10,800];
//已知as数组长度为3,下标范围0~2
//使用循环变量i充当下标,控制下标范围区间在0~2
//每次循环可以获取数组中的一个元素,直到最后一个元素
for(var i=0; i<3; i++){
//输出数组中的某个元素
console.log( as[i] );
}
【遍历失败案例】例:数组长度改变,遍历失败(准备一个长度为4的数组)
3、获取数组长度
[wm_notice]数组的长度等于数组中的元素个数 在程序中可以动态的获取数组长度,以便在数组元素个数改变时,依然能够正确遍历[/wm_notice]
动态获取数组长度
数组名.length;
例如
var as = [10,20,30];
as.length;//获取as数组长度
使用数组长度增强遍历
//遍历数组
for( var i = 0; i<数组名.length; i++){
//获取数组中的某个数据
var a = as[i]);
//输出到控制台中
console.log( a );
}
4、删除元素(数据 )
语法
数组名称.splice(下标 , 个数);
个数:从下标位置开始(含下标位置的元素)删除几个元素
例:删除数组中的某一个元素
var as = [100,200,300,400,500];
//删除数组中的某一个元素 数组名称.splice(下标 , 1);
//2:下标
//1:删除1个元素
as.splice(2,1);
//结果:[100,200,400,500];
例:删除数组中的多个元素
var as = [100,200,300,400,500];
//输出as数组中的元素
//从下标0开始删除3个元素 0、1、2元素将被删除
as.splice(0,3);
//结果[400,500];