数组基本知识

来源:互联网 发布:网络直播危害的事例 编辑:程序博客网 时间:2024/05/22 02:19

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

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
avg = (a1+a2+a3+a4+a5+a6+a7+a8+a9+a10)/10
alert(avg)

这个程序很简单,但是如果是一百人那。

怎么解决显然需要循环:

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

这串代码能够实现相同的功能,并且如果是一百个人,只需要把循环的条件改一下,整个代码结构和代码量和人数没有关系。

为什么和人数没有关系?因为和循环结合起来了。

为什么能和循环结合起来?因为我们把变量的表达方式改变了,即名称加序号的方式(a[0]、a[1]......),那么序号是可以用循环变量来控制。

7.2 数组的定义与元素访问

定义方式有三种

1、  var a = []

2、  var a = new Array()

3、  var a = [0,0,0]

访问元素:数组名+下标

a[0]、a[3]

注意:下标从0开始,所以在使用的时候需要注意越界问题,比如五个元素的始祖那么他的下标范围为【0,4】,不包括5,5已经越界。

数组的本质:一组数据的集合,或者说是一组内存单元。只不过对于变量的表示方式使用的是数组名+下标。

7.3 数组的常用属性和方法

数组的属性:

 Length:1、告诉我们数组的长度:数组名.Length

        2、通过改属性可以改变数组的长度

 数组的常用方法:

1、  unshift:在原有的元素前添加元素(数组名+unshift(添加的元素值))

var b = a.unshift(1)返回新组成数组的长度

shift:删除原有元素的第一个元素。

2、  indexOf:查找数组中重复出现的元素第一次出现的位置,返回值为该元素的下标,lastindexOf:查找最后一次出现的位置,返回值也为该元素的下标。

3、  push:在数组的尾部插入元素,返回值是添加之后数组的长度。

Pop:在数组的尾部删除最后一个元素,返回值为删除的元素本身。

4、  slice(开始的下标,想提取到的下一个下标):就是提取数组中指定连续的子数组。提取的前包括,后不包括。

5、  splice剪接(开始删除位置的下标,要删除元素的长度,要选择插入或者替换的内容,)前面两个参数定义“剪”,后面一个参数定义“接”,通过不同的参数组合能实现以下三种功能:

(1)删除操作。删除任意元素

(2)插入操作。插入指定的任意位置

(3)替换操作。在数组中替换指定位置的元素

        6、reverse:将数组中的元素,倒叙输出。在原数组的基础上进行反序输出,但并不会重新创建一个数组接收,所以原数组也发生改变。

       7、map:原数组的映射,经过函数的加工,返回一个新数组。

一般我们传递的都是数值、字符串等类型的数据,但有时候我们需要传递一个函数,怎么去传递一个函数那。

       匿名函数

var a = [2,4,6,8];
var b = a.map(fun)

functionfun(value,index,self){
   self[index]= value *2

}


alert(a)
alert(b)

我们可以简写为下面这种形式

var a = [2,4,6,8];
var b = a.map(function(value,index,self){
   self[index]= value *2
})
alert(a)
alert(b)

这就是匿名函数。

原创粉丝点击