笔记来源:拉勾教育 - 大前端就业集训营
文章内容:学习过程中的笔记、感悟、和经验
数组
概念
将多个元素(通常是同一类型)按照一定顺序排列到一个集合中,这个集合称为数组,数组的长度可以动态调节
创建数组使用数组字面量[]
一般情况下我们会把一个数组字面量赋值给一个变量,方便后期进行维护和操作,
数组之中如果存在多个数据,使用逗号隔开
// 创建空数组
var arr = [],
// 创建一个非空数组,各项内容和类型不限
arr2 = [1, 2, true, 'hahahah', [1, 2, 3]]
获取数组数据
数组通过一个index(下标/索引值)获取某一项数据
书写方法:数组名[索引值]
注意:
- 索引值从0开始,也就是说如果要获取数组第一项索引值要使用0,后面依次排序(例如某个数组里面有三个元素,那么这三个元素下标分别是0、1、2)
- 获取数组某一项后可以修改这一项的值
(数组名[索引值] = 赋值)
// 创建空数组
var arr = [],
// 创建一个非空数组,各项内容和类型不限
arr2 = [1, 2, true, 'hahahah', [1, 2, 3]];
//获取数组某个索引值的元素
console.log(arr2[0]); //1
console.log(arr2[2]); //true
console.log(arr2[4]); //[1, 2, 3]
//获取数组中没有的项会返回undefined
console.log(arr2[8]); //undefined
//更改数组内容
arr2[0] = 5;
console.log(arr2[0]); //5
注意:
- 如果索引值超过数组的最大索引值,则会返回undefined
- 可以使用赋值语句更改某一项的内容
数组长度(lingth)
length属性用来记录数组的数据总长度,
书写方法:数组名.length
注意:
Length和数组最后一项下标存在联系,既数组最后一项的下标为length-1,所以,如果想获取数组最后一项可以使用length-1替换索引值- 数组的长度随着内部数据的变化而变化,不是固定不变的
// 创建数组
var arr2 = [1, 2, true, 'hahahah', [1, 2, 3]];
//获取长度
console.log(arr2.length); //5
// 获取最后一项
console.log(arr2[arr2.length - 1]); //[1, 2, 3]
改变数组长度
- 增加:
- 直接修改length数字为比现在更大的值,数组长度会被拉长,并且多出来的长度内容为undefined
- 直接添加一个比最大下标数值还要大的项,也会被拉长,中间会被填充undefined
- 缩短:
- 直接修改length为小于原来长度的值,多出来的会被删除掉,并且删除是不可逆的
// 创建数组
var arr2 = [1, 2, true, 'hahahah', [1, 2, 3]];
var arr3 = [1, 2, true, 'hahahah', [1, 2, 3]];
var arr4 = [1, 2, true, 'hahahah', [1, 2, 3]];
// 修改数组长度,直接修改length
arr2.length = 10;
console.log(arr2); //[1, 2, true, "hahahah",[1, 2, 3], 空 × 5]
// 修改数组长度,添加一个不存在的项
arr3[11] = 1;
console.log(arr3); //[1, 2, true, "hahahah", [1, 2, 3], 空 × 6, 1]
//缩短数组长度,删除是不可逆的
arr4.length = 2;
console.log(arr4); //[1, 2]
arr4.length = 5;
console.log(arr4); //[1, 2, 空 × 3]
数组遍历
遍及所所有数组内容,使用for循环,遍历数组中每一项,在进行一些操作
注意:for循环遍历数组内容下标范围在0-length-1之间
// 创建数组
var arr = [1, 2, true, 'hahahah', [1, 2, 3]];
//输出数组所有项
for (let i = 0; i <= arr.length - 1; i++) {
console.log(arr[i]);
}
小案例:给每个学生成绩加5分
// 创建数组包含所有学生成绩
var arr = [78, 87, 56, 65, 77];
//将每个学生成绩加5分
for (let i = 0; i < arr.length; i++) {
arr[i] += 5;
}
//输出新的成绩
console.log(arr); //[83, 92, 61, 70, 82]
数组应用案例
需求:求一个数组的所有项的和和平均值
// 创建数组
var arr = [12, 34, 56, 36, 25, 76];
// 创建变量接纳和,使用累加器
var sum = 0;
// 遍历数组,求和
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
}
// 输出和
console.log('该数组和为' + sum);
// 输出平均值(和/数组长度)
console.log('该数组平均值为' + sum / arr.length);