7.1 数组的概念
var a1,a2,a3,a4,a5,a6,a7,a8,a9,a10;
a1 = Number(prompt("请输入分数"));
a2 = Number(prompt("请输入分数"));
a3 = Number(prompt("请输入分数"));
a4 = Number(prompt("请输入分数"));
a5 = Number(prompt("请输入分数"));
a6 = Number(prompt("请输入分数"));
a7 = Number(prompt("请输入分数"));
a8 = Number(prompt("请输入分数"));
a9 = Number(prompt("请输入分数"));
a10 = Number(prompt("请输入分数"));
var ave = (a1+a2+a3+a4+a5+a6+a7+a8+a9+a10)/10;
alert(ave);
这个程序很简单,但是如果是100人呢,难道复制100遍
尝试使用循环,但发现因为无法控制变量a1,a2,也就是无法控制循环变量和a1,a2匹配
var a = [];
var sum = 0;
for(var i=0; i < 10; i++){
a[i] = Number(prompt("请输入分数"));
sum += a[i];
}
var ave = sum / a.length;
alert(ave);
这段代码能够实现同样的功能,而且如果是100人的话,条件改为i<100,代码的结构和量与人数没有关系。
因为变量的表示方式改变为名称+序号,而序号是可以用循环变量控制的
7.2 数组的定义与元素访问
定义方式1:var a=[];
2.var a = new Array();
3.var a = [0,0,0];
访问元素:数组名+下标
a[0] a[3]
需要注意的是,下标从0开始
所以使用时需注意越界的问题
数组的本质:一组变量的集合,或者说一组内存单元,变量的使用方式为数组名+下标的方式
7.3 数组的常用属性和方法
length:数组的长度 数组名.length
改变数组的长度
unshift:在数组的头部添加元素,返回值为新数组的长度
shift:删除数组的头部元素,返回值为被删除的元素
indexOf:查找数组中重复出现元素第一次的位置,返回值为该元素的下标
lastIndexOf:查找重复元素最后一次的位置,返回值为该元素的下标
push:在数组的尾部插入元素,返回值为添加元素后数组的长度
pop:从数组的尾部删除最后一个元素,返回值为被删除的元素
slice(开始的位置下标,结束位置的下标):提取数组中指定的连续子数组,前包括,后不包括
splice:(开始删除位置的下标,要删除元素的长度,要选择或插入的内容)。有“剪接”的含义
1、删除操作:删除数组中任意的指定元素
2、插入操作:在数组中指定位置插入元素
3、替换操作:在数组中替换指定位置的元素
reverse:将数组中的元素在原数组的基础上倒序输出,不会创建新数组
map:原数组的映射,经过函数的加工,返回给一个新数组
函数的传递
var a =[2,4,6,8];
var b = a.map(function(value){
return value * value;
});
这就是匿名函数