数组(Array),即将一堆数据放在一起。在计算机科学中,数组指的是相同类型的数据放在一起,但是JavaScript中的数组可以存放不同类型的数据。
数组概述
在数组中,可以用一个名称存放多个值,每一个值称之为该数组的一个元素,也就是说数组中可以存储多个元素,那么它就有一个重要的属性,就是元素的数量,我们称之为数组的长度(length)。
那么我们如何区分这些元素呢?在数组中,这些元素是按顺序存储的,我们用从0开始数的一个整数作为它的标识符,称之为索引。不过,在自然语言中我们是从1开始数的,因此索引为0的元素指的是数组中的第一个元素,因此一个数组的索引的取值范围是0~数组长度-1的整数闭区间中,当索引不在这个区间中,则会报错:超出索引。长度为0的数组就是没有元素的数组,简称为空数组。
数组的声明和初始化
由于一个变量可以存储数组,因此只需要声明变量即可,数组不需要额外声明,也可以在声明变量时初始化一个数组,然后将它赋值给这个变量,这也有很多种方式,第一种是使用[]:
【例5-1】声明一个变量,并初始化一个空数组赋值给该变量
let 数组名=[];
当然,我们也可以声明变量后,之后初始化,不一定需要在声明时同时初始化。
在初始化时,我们也可以存储值。
【例5-3】
let arr=[3,5,8];
上面会在名为arr的变量中存储一个数组,在该数组中,索引为0的值是3,索引为1的值是5,索引为2的值是8,数组的长度是3.
初始化之后,我们就可以使用[]可以获得和修改数组中某个索引的值,获得数组中某个索引的值的格式:数组名[索引]
,修改值的方式是数组名[索引]=值;
。
【例5-4】续【例5-3】
console.log(arr[0]); // 获得数组arr中索引为0的值
arr[1]=3; // 将arr索引为1的值改为3
console.log(arr[1]); // 我们可以看到arr中索引为1的值发生了变化,其它索引的值没有发生变化
在JavaScript中,数组的长度是可以改变的,因此我们不一定从0开始赋值,也可以跳着赋值,在这种情况下,中间索引的值默认为undefined。
我们可以使用数组名.length
来获得当前数组的长度,结合循环结构等,我们可以更方便地做很多事情,例如给数组赋一串有规律的值等。
【例5-5】给数组从0开始的索引分别赋值为1、2、3、...10
let arr=[];
for(let i=1;i<=10;i++){
arr[i-1]=i;
}
然后也可以求和
【例5-6】续【例5-5】求数组中的和
let sum=0;
for(let i=0;i<=arr.length-1;i++){
sum+=arr[i];
}
上面也可以写成:
let sum=0;
for(let i=0;i<arr.length;i++){
sum+=arr[i];
}
我们也可以通过实例化Array类的方式,来声明一个数组
let arr=new Array(); // 空数组
let arr=new Array(1,2,3); // 也可以在声明时初始化
数组的遍历
按顺序访问数组中的每一个值,我们称之为遍历数组,因此上文使用for循环也是遍历数组,遍历数组除了使用循环结构之外还有其它一些方式,比如for...in循环和forEach等。由于后者涉及到了函数,因此之后再说。
数组的操作
在JS中,无论是使用何种方式初始化的数组,它都是Array类的对象,因此可以使用Array类的非静态方法。上文所述的forEach方法就是Array类的方法之一。
网友评论