数组
数组用于存放多个数据
创建一个数组
new Array(长度)
长度,数组里面的数据总数,长度一定是一个非负正数
new Array(数据,数据,数据...)
创建一个数组,并初始化其每一项的值
数组项: 数组其中的一项数据
[数据,数据,数据...]
创建一个数组,并初始化每一项的值
认识数组的本质
数组的本质是一个对象
- length 属性: 数组的长度,会自动变化,最大下标+1
- 数字字符串属性: 叫做下标,也叫做索引,相当于数组中每个数据的编号,下标从 0 开始
连续下标的取值范围:0 ~ length -1,如果给 length 直接赋值,会导致数组可能被截断
实际开发中,不要给 length 赋值
下标
通常情况下,下标是连续的,
下标不连续的数组,叫做稀松数组。
数组的常见操作
添加数组项
数组[长度] = 数据
:向数组末尾添加一项数据数组.push(数据)
:向数组末尾添加一项数据数组.unshift(数据)
:向数组起始位置添加一项数据,会导致数组每一项的下标向后移动数组.splice(下标,0,添加的数据)
:从指定下标位置开始,删除 0 个,然后在该位置插入添加的数据,如果下标超过数组下标的范围,则按照范围的边界进行处理。
push、unshift、splice 可以添加多个数据
删除数据
delete 数组[下标]
:
这种做法不会导致数组其他的属性发生变化,因此,该做法会导致产生稀松数组,所以不推荐使用该做法。
数组.pop()
:
删除数组的最后一项,该表达式返回最后一项的数据
数组.shift()
:
删除数组第一项,该表达式返回第一项的数据
数组.splice(下标,删除的数量,添加的数据)
:
从指定下标位置开始,删除指定数量,然后在该位置插入添加的数据,如果下标超过数组下标的范围,则按照范围的边界进行处理。该表达式返回一个新数组,新数组记录被删除的数据。
其他操作
数组.slice(起始位置下标,结束位置下标)
:
将起始位置到结束位置下标(结束下标取不到)的数据删除,返回一个新数组,不会改变原数组;
下标可以是负数,如果是负数,则从数组的末尾开始计算。
如果不写结束下标,则直接取到末尾。
数组清空
数组.splice(0,数组.length)
数组.length = 0
查找数组中某一项的下标
数组.indexOf(数据)
:从数组中依次查找对应的数据,查找时使用严格相等进行比较。找到第一个匹配的下标,返回。注意:如果没有找到,则返回-1;
数组.laseIndexOf(数据)
功能和 indexOf 类似,只是查找的是最后一个匹配的下标
数组.fill()
数组.fill(数据)
:将数组的所有项,填充为指定的数据
数组.fill(数据,开始下标)
:将数组从开始下标,到数组的末尾,填充为指定的数据
数组.fill(数据,开始下标,结束下标)
:将数组从开始下标,到数组的结束下标(取不到),填充为指定的数据
语法补充
in 关键字
判断某个属性名在对象中属否存在
属性名 in 对象
for-in、forEach 循环
for (var prop in 对象) {
// 循环体
}
2
3
取出对象的所有属性名,每次循环将其中一个属性名赋值给变量 prop,运行循环体。