数组的类型相关
方法 | 描述 | 备注 |
---|
Array.isArray() | 判断是否为数组 | |
toString() | 将数组转换为字符串 | 不会改变原数组 |
join() | 将数组转换为字符串,返回结果为转换后的字符串 | 不会改变原数组 |
字符串的方法:split() | 将字符串按照指定的分隔符,组装为数组 | 不会改变原字符串 |
| | |
Array.from(arrayLike) | 将伪数组转化为真数组 | |
Array.of(value1, value2, value3) | 创建数组:将一系列值转换成数组 | |
注意:
(1)获取数组的长度是用length
属性,不是方法。关于 length
属性,详见上一篇文章。
(2)split()
是字符串的方法,不是数组的方法。
数组元素的添加和删除
方法 | 描述 | 备注 |
---|
push() | 向数组的最后面插入一个或多个元素,返回结果为新数组的长度 | 会改变原数组 |
pop() | 删除数组中的最后一个元素,返回结果为被删除的元素 | 会改变原数组 |
unshift() | 在数组最前面插入一个或多个元素,返回结果为新数组的长度 | 会改变原数组 |
shift() | 删除数组中的第一个元素,返回结果为被删除的元素 | 会改变原数组 |
| | |
splice() | 从数组中删除指定的一个或多个元素,返回结果为被删除元素组成的新数组 | 会改变原数组 |
slice() | 从数组中提取指定的一个或多个元素,返回结果为新的数组 | 不会改变原数组 |
concat() | 合并数组:连接两个或多个数组,返回结果为新的数组 | 不会改变原数组 |
... | 利用扩展运算符... 合并数组,注:数组不能使用加号进行拼接。如果使用加号进行拼接会先转换成字符串再拼接。 | 如['a', 'b', 'c', ...arr1] |
fill() | 填充数组:用固定的值填充数组,返回结果为新的数组 | 会改变原数组 |
数组排序
方法 | 描述 | 备注 |
---|
reverse() | 反转数组,返回结果为反转后的数组 | 会改变原数组 |
sort() | 对数组的元素,默认按照Unicode 编码,从小到大进行排序 | 会改变原数组 |
查找数组的元素
方法 | 描述 | 备注 |
---|
indexOf(value) | 从前往后索引,检索一个数组中是否含有指定的元素 | |
lastIndexOf(value) | 从后往前索引,检索一个数组中是否含有指定的元素 | |
includes(item) | 数组中是否包含指定的内容 | |
find(function()) | 找出第一个满足「指定条件返回 true」的元素 | |
findIndex(function()) | 找出第一个满足「指定条件返回 true」的元素的 index | |
every() | 确保数组中的每个元素都满足「指定条件返回 true」,则停止遍历,此方法才返回 true | 全真才为真。要求每一项都返回 true,最终的结果才返回 true |
some() | 数组中只要有一个元素满足「指定条件返回 true」,则停止遍历,此方法就返回 true | 一真即真。只要有一项返回 true,最终的结果就返回 true |
遍历数组
方法 | 描述 | 备注 |
---|
for 循环 | 最传统的方式遍历数组,这个大家都懂 | |
forEach() | 遍历数组,但需要兼容 IE8 以上 | 不会改变原数组。forEach() 没有返回值。也就是说,它的返回值是 undefined |
for of | 遍历数组(ES6语法) | 不会改变原数组。另外,不要使用 for in 遍历数组 |
map() | 对原数组中的每一项进行加工,将组成新的数组 | 不会改变原数组 |
filter() | 过滤数组:返回结果是 true 的项,将组成新的数组,返回结果为新的数组 | 不会改变原数组 |
reduce | 接收一个函数作为累加器,返回值是回调函数累计处理的结果 | 比较复杂 |
个人记忆方法:
join()
与 split()
:数组与字符串相互转换的方法。
push()
与unshift()
:前者向数组的最后面插入一个或多个元素,后者在数组最前面插入一个或多个元素,返回结果均为新数组的长度。
pop()
与shift()
:前者删除数组中的最后一个元素,后者删除数组中的第一个元素,返回结果均为被删除的元素。
splice()语法:新数组 = 原数组.splice(起始索引index, 需要删除的个数, 新的元素1, 新的元素2...);
,返回结果为被删除元素组成的新数组。
slice()语法:新数组 = 原数组.slice(开始位置的索引, 结束位置的索引); //注意:提取的元素中,包含开始位置,不包含结束位置
,返回结果为提取的新数组,这和python中的切片类似。