JS数组的使用
2017-08-02 21:56
162 查看
计算5名同学的平均分
思考:如果是100人呢?难道要真的复制100遍?
怎么解决?显然需要使用循环
但是尝试一下就会发现,循环使用不上,因为无法控制变量a1,a2,也就是无法将循环控制变量和变量a1,a2联系起来。
这段代码能够实现同样的功能,而且如果是100人的花,只要把循环的条件改为i<100即可,整个程序的结构和代码量和人数多少没有关系。
为什么和人数没有关系呢?因为和循环结合起来了。
为什么能和循环结合起来呢?因为我们把变量的表示方式改变了,即名称+序号的方式(a[0]、a[1]….),那么序号是可以用循环变量去控制的。
数组的定义与元素访问
定义数组的三种方式:
(1)var a = [];
(2)var a = new Array();
(3)var a = [0,0,0]
访问元素:数组名+下标
a[0] a[3]
注意:下标必须从0开始,所以在使用的时候需要注意越界问题,比如5个元素的数组,那么它的下标范围为[0,4],不包括5,因为5已经越界了。
数组的本质:一组变量的集合,或者说是一组内存单元,只不过对于变量的表示方式使用的是数组名+下标的方式。
数组的常用属性和方法
数组的属性:
length:
1、告诉我们数组的长度:数组名.length
2、通过该属性可以改变数组的长度
var a =[1,2,3,4,5,6,7];
a.length = 5;
alert(a);
数组的常用方法:
1、unshift:在数组的头部添加元素,返回值返回的是新数组的长度
shift:删除数组头部的元素,返回值是删除的头部元素。
var a = [2,3,4,5,7];
var b = a.unshift(1);
alert(a);
alert(b);
var a = [2,3,4,5,7];
var c = a.shift();
alert(a);
alert(c)
2、indexof():查找在数组中重复出现的元素第一次出现的位置,返回值是该元素的下标
var a = [“我”,”爱”,”中”,”国”,”也”,”爱”,”我”,”自”,”己”];
var b = a.indexOf(“爱”);
alert(a);
alert(b);
lastIndexOf:查找数组中重复出现的元素最后一次出现的位置,返回值是该元素的下标
3、push:在数组的尾部插入元素,返回值是添加元素后数组的长度
pop:从数组的尾部删除最后一个元素,返回值是删除的元素。
var a = [“我”, “爱”, “中”, “国”, “也”, “爱”, “我”, “自”, “己/* a[a.length]=”!”;
a[a.length]=”#”;*/
var b = a.push(“!”, “#”);
var c = a.pop();
alert(a);
alert(b);
alert(c);
4、sl(开始位置的下标,结束位置的下标):提取数组中指定连续的子数组。
前包括,后不包括。
5、splice(开始删除位置的下标,要删除元素的长度,要选择插入或替换的内容,)
splice 有“剪接”的含义,前面两个参数定义“剪”的部分,第三个参数定义“接”的部分,经过不同的参数组合就可以实现以下三个功能:
(1)删除操作:删除数组中指定的任意元素。
var a = [“我”, “爱”, “中”, “国”, “也”, “爱”, “我”, “自”, “己”];
var b = a.splice(4, 8);
alert(a);
alert(b);
(2)插入操作:在数组中指定位置插入元素。
var a = [“我”, “爱”, “中”, “国”];
a.splice(3,0,”华”,”人”,”民”,”共”,”和”);
alert(a);
(3)替换操作:在数组中替换指定位置的元素。
var a = [“我”, “爱”, “中”, “国”];
a.splice(2, 2,”自”,”己”);
alert(a);
6、reverse:将数组中的元素,反序输出。在原数组的基础上进行反序输出,不会重新创建新数组。
7、map(传递函数):原数组的映射,经过函数的加工,返回给一个新数组。
一般我们传递的参数都是数值,字符串等类型的数据,有些时候可能需要传递一个函数,那么如何去传递一个函数呢?
匿名函数:
我们可以将以上内容简写为:
var a = [2,4,6,8];
var b = a.map(function (value,index,self){
return value *value;
});
alert(b);
var a1,a2,a3,a4,a5; a1=Number(prompt("请输入分数")); a2=Number(prompt("请输入分数")); a3=Number(prompt("请输入分数")); a4=Number(prompt("请输入分数")); a5=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即可,整个程序的结构和代码量和人数多少没有关系。
为什么和人数没有关系呢?因为和循环结合起来了。
为什么能和循环结合起来呢?因为我们把变量的表示方式改变了,即名称+序号的方式(a[0]、a[1]….),那么序号是可以用循环变量去控制的。
数组的定义与元素访问
定义数组的三种方式:
(1)var a = [];
(2)var a = new Array();
(3)var a = [0,0,0]
访问元素:数组名+下标
a[0] a[3]
注意:下标必须从0开始,所以在使用的时候需要注意越界问题,比如5个元素的数组,那么它的下标范围为[0,4],不包括5,因为5已经越界了。
数组的本质:一组变量的集合,或者说是一组内存单元,只不过对于变量的表示方式使用的是数组名+下标的方式。
数组的常用属性和方法
数组的属性:
length:
1、告诉我们数组的长度:数组名.length
2、通过该属性可以改变数组的长度
var a =[1,2,3,4,5,6,7];
a.length = 5;
alert(a);
数组的常用方法:
1、unshift:在数组的头部添加元素,返回值返回的是新数组的长度
shift:删除数组头部的元素,返回值是删除的头部元素。
var a = [2,3,4,5,7];
var b = a.unshift(1);
alert(a);
alert(b);
var a = [2,3,4,5,7];
var c = a.shift();
alert(a);
alert(c)
2、indexof():查找在数组中重复出现的元素第一次出现的位置,返回值是该元素的下标
var a = [“我”,”爱”,”中”,”国”,”也”,”爱”,”我”,”自”,”己”];
var b = a.indexOf(“爱”);
alert(a);
alert(b);
lastIndexOf:查找数组中重复出现的元素最后一次出现的位置,返回值是该元素的下标
3、push:在数组的尾部插入元素,返回值是添加元素后数组的长度
pop:从数组的尾部删除最后一个元素,返回值是删除的元素。
var a = [“我”, “爱”, “中”, “国”, “也”, “爱”, “我”, “自”, “己/* a[a.length]=”!”;
a[a.length]=”#”;*/
var b = a.push(“!”, “#”);
var c = a.pop();
alert(a);
alert(b);
alert(c);
4、sl(开始位置的下标,结束位置的下标):提取数组中指定连续的子数组。
前包括,后不包括。
5、splice(开始删除位置的下标,要删除元素的长度,要选择插入或替换的内容,)
splice 有“剪接”的含义,前面两个参数定义“剪”的部分,第三个参数定义“接”的部分,经过不同的参数组合就可以实现以下三个功能:
(1)删除操作:删除数组中指定的任意元素。
var a = [“我”, “爱”, “中”, “国”, “也”, “爱”, “我”, “自”, “己”];
var b = a.splice(4, 8);
alert(a);
alert(b);
(2)插入操作:在数组中指定位置插入元素。
var a = [“我”, “爱”, “中”, “国”];
a.splice(3,0,”华”,”人”,”民”,”共”,”和”);
alert(a);
(3)替换操作:在数组中替换指定位置的元素。
var a = [“我”, “爱”, “中”, “国”];
a.splice(2, 2,”自”,”己”);
alert(a);
6、reverse:将数组中的元素,反序输出。在原数组的基础上进行反序输出,不会重新创建新数组。
7、map(传递函数):原数组的映射,经过函数的加工,返回给一个新数组。
一般我们传递的参数都是数值,字符串等类型的数据,有些时候可能需要传递一个函数,那么如何去传递一个函数呢?
匿名函数:
var a = [2, 4, 6, 8]; var b = a.map(fun); function fun (value, index, self) { return value * value; }); alert(b);
我们可以将以上内容简写为:
var a = [2,4,6,8];
var b = a.map(function (value,index,self){
return value *value;
});
alert(b);
相关文章推荐
- php使用js保存的json cookie 字符串,然后解析成数组,需要注意的事项
- js数组使用方法介绍
- 使用jQuery对js对象和数组的遍历以及序列化
- 使用jQuery对js对象和数组的遍历以及序列化
- js数组Array sort方法使用深入分析
- 关于“Asp.net 中后台CS读取数据库数据生成数组传递给前台页面JS使用”
- javascript入门经典学习三(使用变量,字符串数组)(附js中文手册)
- js中的数组Array定义与sort方法使用示例
- 使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
- for in 在js数组和对象上使用
- js使用数组判断提交数据是否存在相同数据
- js使用数组判断提交数据是否存在相同数据
- 使用js判断数组中是否包含某一元素(类似于php中的in_array())
- JS数组的使用实例
- JS数组使用说明
- 使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
- js 数组使用小技巧
- js中的数组Array定义与sort方法使用示例
- js使用服务器端的数组
- js中push使用 (数组)