JavaScript中的数组

来源:互联网 发布:女生做淘宝美工累吗 编辑:程序博客网 时间:2024/06/15 01:43

1 数组的概念

案例:计算10名同学的平均分

<script>    var a1,a2,a3,a4,a5;    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);</script>

这个程序很简单,但是如果100人呢,难道要真的复制100遍?

怎么解决呢?显然需要使用循环。

但是尝试一下就会发现,循环使用不上,因为无法去控制变量a1,a2,也就是无法将循环控制变量和变量a1,a1联系起来。

var a = [];var sum = 0;for(var i=0; i<5; i++){    a[i] = Number(prompt("请输入分数"));    sum+=a[i];}var ave = sum/ a.length;alert(ave);

这段代码能够实现同样的功能,而且如果100人的话,只要把循环的条件改为i<100即可,整个程序的结构和代码量和人数多少没有关系。


2.数组的常用属性和方法


数组的属性:

Length告诉我们数组的长度;数组名.length

<script>    var a=[];    var sum=0;    a.length =5;    for(var i=0;i< a.length;i++){        a[i]=Number(prompt("请输入分数"));        sum += a[i];    }    var ave=sum/ a.length;    alert(ave);</script>

数组的常用方法:

(1)   unshift;在数组的头部添加元素,返回值返回的是新数组的长度

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

(2)   indexOf:查找在数组中重复出现的元素第一次出现的位置,返回值是该元素的下标。

lastIndexOf:查找数组中重复出现的元素最后一次出现的位置,返回值是该元素的下标。

(3)push:再数组的尾部插入元素,返回值是添加元素后数组的长度。


<script>    var a = ["我","爱","中","国","也","爱","我","自","己"];    var b = a.push("!","%%%","^^^");    alert(b);    alert(a);</script>

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

<script>    var a = ["我","爱","中","国","也","爱","我","自","己"];    var b = a.push("!","#");    var c = a.pop();    alert(a);    alert(b);    alert(c);</script>

(4)slise(开始位置的下标,结束位置的下标):提取数组中指定连续的子数组

取一个小片段

<script>    var a = ["我","爱","中","国","也","爱","我","自","己"];    var b = a.slice(2,4);    alert(b);</script>

(5)splice(开始删除位置的下标,要删除元素的长度,要选择插入或替换的内容)splice有“剪接”的含义,

前面两个参数定义“剪”的部分,第三个参数定义“接”的部分,经过不同的参数组合就可以实现以下三个功能:

1、删除操作:删除数组中指定的任意元素

    var a = ["我","爱","中","国","也","爱","我","自","己"];    var b = a.splice(4,5);    alert(a);

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) {    return  value * value;});alert(a);alert(b);








原创粉丝点击