JavaScript 数组
为什么学习数组?
- 之前学习的数据类型,只能存储一个值(比如:Number/String)。如果我们想存储班级中所有学生的成绩,此时该如何存储?
数组的概念
- 所谓数组(Array),就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组
数组的定义
- 数组是一组有序的数组集合。数组内部可以存放多个数据,不限制数据类型,并且数组的长度可以动态的调整。
- 创建数组最简单的方式就是数组字面量方式
- 数组的字面量:[]
- 一般将数组字面量赋值给一个变量,方便后期对数组进行操作
- 如果存放多个数据,每个数据之间用逗号分隔,最后一个后面不需要加逗号
var arr = [];//创建一个空的数组
var arr1 = [1, 2, '数组', true, undefined, true];
获取数组元素
- 数组可以通过一个 index (索引值、下标)去获取对应的某一项数据,进行下一步操作
- index:从 0 开始,按照整数排序往后顺序排序,例如 0,1,2,3······
- 可以通过 index 获取某项值之后,使用或者更改数组项的值
- 调用数据:利用数组变量名后面直接加 [index] 方式
var arr = ['red', 'orange', 'blue',];//索引号按顺序0 1 2...
console.log(arr[0]); //red
console.log(arr[1]); //orange
console.log(arr[2]); //blue
console.log(arr[3]); //undefined
// 从代码中我们可以发现,从数组中取出每一个元素时,代码是重复的,不一样的是代码的索引值在增加
// 因此我们有更简便的方法一次调用数组中的多个元素
- 注意:如果索引值超过了数组最大项,相当于这一项没有赋值,内部存储的就是 undefined
- 更改数据:arr[index] 调用这一项数据,后面等号赋值更改数据
var arr = [1, 2, '数组', true];
console.log(arr[5]);//undefined
arr[2] = 'haha';
console.log(arr[2]);//'haha'
数组的长度
- 数组有一个 length 的属性,记录的是数组的数据的总长度
- 使用方法:变量.length
console.log(arr.length);
- 数组的长度与数组最后一项的下标存在关系,最后一项的下标等于数组的 length-1
- 获取最后一项数据时,可以这样书写:
console.log(arr[arr.length-1]);
- 数组的长度不是固定不变的,可以发生更改
更改数组长度:
- 增加数组长度:直接给数组 length 属性赋一个大于原来长度的值。赋值方式使用等号赋值
- 或者,可以给一个大于最大下标的项直接赋值,可以强制拉长数组
- 缩短数组长度:强制给 length 属性赋值,后面数组被会直接删除,删除时不可逆的
更改数组长度:
var arr = [1, 3, 5, 7];
arr.length = 10;
console.log(arr);
拉长数组长度:
var arr = [1, 3, 5, 7];
arr[14] = 6;
console.log(arr);
console.log(arr.length);//15
缩短数组长度:
var arr = [1, 3, 5, 7];
arr.length = 3
console.log(arr);//[1,3,4]
console.log(arr.length);//3
数组的遍历
- 遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。利用 for 循环,将数组中的每一项单独拿出来,进行一些操作
- 根据下标在 0 到 arr.length-1 之间,进行 for 循环遍历
//遍历数组就是把数组的元素从头到尾访问一遍
var arry = ['red','blue','green']
for(var i = 0; i < 3; i++){
console.log(arry[i]);
}
//1.因为索引号从0开始,所以计数器i必须从0开始
//2.输出时计数器i当索引号使用
// 通用写法
var arry = ['red','blue','green']
for(var i = 0; i < arry.length; i++){ //也可以写成: i <= arry.length - 1
console.log(arry[i]);
}
数组应用案例
- 求一组数中的所有数的和以及平均值
var arry = [2, 6, 7, 9, 11];
var sum = 0;
var average = 0;
for (var i = 0; i < arry.length; i++) {
sum += arry[i];
}
average = sum / arry.length;
console.log(sum,average);//同时输出多个变量用逗号隔开
原文:https://zhuanlan.zhihu.com/p/365784347