这个表格可以作为数组方法的快速参考指南
| 方法名 | 对应版本 | 功能 | 原数组是否改变 | 返回值类型 |
|---|---|---|---|---|
| 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



















