本文参考 JavaScript Array 对象 | 菜鸟教程
JS的数组与python中的列表相似,可以存储任意数据类型元素,声明时用逗号将其隔开
目录
1 创建数组
1.1 中括号创建
注意使用typeof的时候返回的对象是object
1.2 new创建
效果与中括号创建相同
如果你这样写那么就会给你一个数组里面有两个空元素
写两个及以上以上代表往数组中放的元素
2 获取数组指定位置元素
我们通过索引获取,比如我们现在想要获取0号元素
如果索引的号超出了数组的长度会返回undefined,比如我现在要获取5号元素
3 length属性
我们可以通过length获取数组元素的个数
我们也可以设置length,比如我们现在想将其设置为8
虽然只有5个元素,但是他的长度是8,剩下的三个是empty,我们索引一下6号元素看看
发现是undefined
4 遍历数组
我们使用循环进行遍历
- 注意条件不要写等于号,如果写了就少遍历最后一个元素,因为一个是位置(有0),一个是长度(没0)
i是遍历的起始点,可以从0开始,也可以从别的位置开始。条件也可以不遍历到最后,遍历到指定位置也可以
我们可以通过遍历的方式获取一个数组的加和
如果想取平均值就用总和除长度
我们也可以通过for in 的方式进行遍历
此时的i是索引,这样我们就可以不通过length属性遍历
5 获取数组中的最大值
- max的第一次赋值不要给0,因为如果数组都是负数我们得到的最大值是0
- 为了少比较一次我们就从1号位开始遍历,如果从0号位开始也是可以的
如果要获取最小值就把小于号改成大于号就行
6 追加数组元素
我们通过给大于原有索引号的索引赋值来追加数组元素
如果想给下一个就写5,像我这样没给下一个的情况,中间会出现empty,empty就是undefined,我们可以通过上面的方法给empty赋值
如果我们就像在最后一个添加,我们配合length就可以了
7 替代数组元素
给已有的索引进行赋值可以替代原来的元素
8 一些常用的案例
8.1 筛选出数组中大于等于10的数
我们还可以这样写
效果是一样的
8.2 删除数组中的指定值
我们现在把数组中值为0的元素都删掉
8.3 冒泡排序
升序排列是这样的
num是冒泡排序的趟数,冒泡排序至多不超过n-1趟就一定可以达到效果
for循环是交换变量的过程,每一趟至多交换 长度-趟数-1 次 就一定可以达到效果
降序排列把小于号换成大于号就可以了
8.4 数组去重
方法有很多,我们写几个
8.4.1 方法一
查左右两侧的索引是否一致,如果不一致就给右面的删了,这样写不需要添加新的变量
8.4.2 方法二
给一个新的数组,如果新数组中没有老数组中的值就添加进去
- 注意索引比arr.length少一个,所以是i<arr.length而不是小于等于
9 返回其他变量的数组形式 Array.from()
9.1 基本使用
返回值为数组,原值不变
数字型与布尔型都不会被拆开
还有其他的参数,但用的地方不多,详情可以看一下 JavaScript from() 方法 | 菜鸟教程
9.2 将伪数组转换为真数组
伪数组是看着像数组,但实际不是数组的变量,比如document.queryselectorAll()的返回值
10 判断变量是否为数组 Array.isArray()
我们也可以用 instanceof Array来检测变量是否是数组