这个表格可以作为数组方法的快速参考指南
方法名 | 对应版本 | 功能 | 原数组是否改变 | 返回值类型 |
---|---|---|---|---|
concat() | ES5- | 合并数组,并返回合并之后的新数组 | n | Array |
join() | ES5- | 使用分隔符,将数组转为字符串并返回 | n | String |
pop() | ES5- | 删除最后一位,并返回删除的数据 | y | Any(被删除的元素) |
shift() | ES5- | 删除第一位,并返回删除的数据 | y | Any(被删除的元素) |
unshift() | ES5- | 在第一位新增一或多个数据,返回新数组长度 | y | Number(新数组长度) |
push() | ES5- | 在最后一位新增一或多个数据,返回新数组长度 | y | Number(新数组长度) |
reverse() | ES5- | 反转数组,返回反转后的数组 | y | Array(反转后的数组) |
slice() | ES5- | 截取指定位置的数组,并返回新数组 | n | Array |
sort() | ES5- | 排序(默认按字符规则),可传入比较函数,返回排序后的数组 | y | Array(排序后的数组) |
splice() | ES5- | 删除指定位置,并替换,返回被删除的元素组成的数组 | y | Array(被删除的元素组成的数组) |
toString() | ES5- | 直接转为字符串(相当于join(‘,’)),并返回 | n | String |
valueOf() | ES5- | 返回数组对象的原始值(通常是数组本身) | n | Array |
indexOf() | ES5 | 查询并返回数据的索引(从前往后),找不到返回-1 | n | Number |
lastIndexOf() | ES5 | 反向查询并返回数据的索引(从后往前),找不到返回-1 | n | Number |
forEach() | ES5 | 遍历数组所有项,回调函数接受value, index, array三个参数,无返回值 | n | undefined |
map() | ES5 | 遍历数组所有项,回调函数返回数据,组成新数组由map返回 | n | Array |
filter() | ES5 | 遍历数组所有项,回调函数返回布尔值,为true的数据组成新数组 | n | Array |
every() | ES5 | 遍历数组所有项,回调函数返回布尔值,全部为true则every返回true | n | Boolean |
some() | ES5 | 遍历数组所有项,回调函数返回布尔值,只要有一个为true则some返回true | n | Boolean |
reduce() | ES5 | 从左到右归并数组,回调函数接收accumulator, currentValue等参数,返回最终值 | n | Any(归并结果) |
reduceRight() | ES5 | 从右到左归并数组,回调函数接收accumulator, currentValue等参数,返回最终值 | n | Any(归并结果) |
includes() | ES6 | 判断数组是否包含某个值,返回布尔值 | n | Boolean |
find() | ES6 | 返回第一个满足测试函数的元素值,找不到返回undefined | n | Any(找到的元素)或undefined |
findIndex() | ES6 | 返回第一个满足测试函数的元素索引,找不到返回-1 | n | Number |
fill() | ES6 | 用固定值填充数组的指定区间 | y | Array(修改后的数组) |
copyWithin() | ES6 | 在数组内部复制指定序列到目标位置 | y | Array(修改后的数组) |
flat() | ES2019 | 将多维数组扁平化,返回新数组 | n | Array |
flatMap() | ES2019 | 先对每个元素执行map(),然后执行flat(1),返回新数组 | n | Array |
新增说明:
- ES6新增方法:includes(), find(), findIndex(), fill(), copyWithin()
- ES2019新增方法:flat(), flatMap()
- 返回值类型更具体化
- 增加了对回调函数参数的说明
- 对于会改变原数组的方法,在"原数组是否改变"列标记为y