MDN Array 避免使用new Array 用[]
代替
同数组中可存放不同类型的变量
js数组不支持命名索引
Array.of 可直接通过 [] 创建数组
数组的属性
.length 属性返回数组的长度(数组元素的数目)
获取元素
-
[]
/.
-
at()
支持负索引
isArray 判断是否为数组
相较于 instanceof 可以判别 iframe
includes 判断是否包含指定元素
操作性
.push() 方法
操作等同于 在.length下标元素下赋值
返回新数组的长度
.unshift() 方法
向数组开头添加元素
返回新的数组长度
.pop() 方法
删除数组最后一个元素
.shift() 方法
移除数组首个元素
.splice() 方法 更加灵活,可直接删除原数组
“胶接” 用 嫁接 就很形象
拼接的方法添加新项;也可用于删除项
第一个参数(2)定义了应添加新元素的位置(拼接)。
第二个参数(0)定义应删除多少元素。
其余参数(“Lemon”,“Kiwi”)定义要添加的新元素。
返回 由删除项构成的数组
查找性
indexOf / lastIndexOf
创建一个具有可变数量参数的数组
参数为需要匹配的值
用法等同于String的indexOf() 和 lastIndexOf()
find / findLast
回调测试函数 回调返回真时,返回对应的元素,查找不到时返回 undefined
查找对象数组匹配属性的对象
objArr.find(item => item.value = xxx)
findIndex / findLastIndex
回调测试函数
功能性 - 生成
fill 填充数组
fill(value[, start[, end]])
copyWithin 数组内部复制
浅复制数组的一部分到同一数组中的另一个位置
Array.from 创建数组
arrayLike, [mapFn], thisArg
对一个类似数组或可迭代对象创建一个新的浅拷贝的数组实例。
伪数组对象 如DOM,getElements 可以通过此方法应用数组方法; 通过设定包含length的对象生成需要的数组
Array.from(new Set(arr))
数组去重
功能性
reverse 数组逆序
–
slice 数组裁剪
截取数组片段
第一个参数:起始下标
第二个参数:结束下标
concat 数组拼接
参数为拼接的数组(可设置多个)
返回凭借后的结果
–
join 数组转字符串
- 数组进行 .toString() 元素间会 以逗号分隔
- .join(“,”) 方法
参数为字符串 -以特定字符串为分隔,将数组元素拼接为字符串
数组降维
.flat() // 可选参数 展开层数 (Infinity 无限展开)
.flatMap() // 可选参数 展开层数 (Infinity 无限展开)
遍历数组相关方法
forEach
map
filter
reduce
every
some
提取 Array Iterator 对象
.entries() 遍历键值对
.keys() 遍历键
.values() 遍历值
通过 .next()
访问
删除指定位置的元素,可以使用 delete 运算符,但会留下 undefined
不建议使用
稀疏数组中的空槽在数组方法之间的行为不一致。通常,旧方法会跳过空槽,而新方法将它们视为 undefined。