一张图整理JavaScript数组方法
2018-12-16
JavaScript
4268
对于一个数组方法,我最关心的有两个问题,返回值是什么,会不会对原始数组造成影响,典型的例子就是 splice 和 slice 方法。对于那些返回原数组的函数,我们可以直接调用数组的链式调用,array.filter().sort().reverse()
。
下面用表格列出来所有方法的功能,返回值,是否会修改原数组,方便查阅,值得保存
方法 | 功能 | 返回值 | 是否修改原数组 |
---|---|---|---|
push | 添加一个或多个元素到数组末尾,返回数组长度 | number | 是 |
pop | 删除数组的最后一个元素,返回这个元素 | * | 是 |
unshift | 添加一个或多个元素到数组开头,返回数组长度 | number | 是 |
shift | 删除数组的第一个元素,返回这个元素 | * | 是 |
reverse | 颠倒数组,返回颠倒后的数组 | array | 是 |
concat | 拼接多个数组,返回拼接后的数组 | array | 否 |
sort | 对数组元素做原地排序,并返回这个数组 | array | 是 |
every | 数组所有元素通过指定函数才返回true | bool | 否 |
some | 只要数组中有一个通过指定函数则返回true | bool | 否 |
filter | 用指定函数过滤数组,返回新数组 | array | 否 |
forEach | 对数组每个元素执行一遍提供的函数,无返回值 | undefined | 否 |
map | 数组中所有元素执行指定方法后的返回值组成的新数组 | array | 否 |
indexOf | 返回指定元素在数组中第一个索引值 | number | 否 |
join | 将数组链接为字符串 | string | 否 |
lastIndexOf | 指定元素在数组中最后一个索引 | number | 否 |
reduce | 数组中的每个值从左到右开始合并,最终为一个值 | * | 否 |
reduceRight | 数组中的每个值从右到左开始合并,最终为一个值 | * | 否 |
slice | 复制数组的一部分到新数组,返回新的数组 | array | 否 |
splice | 用新元素替换旧元素,返回元素组被替换的那部分元素组成的数组 | array | 是 |
toString | 与join方法类似 | string | 否 |
es6新增 | |||
Includes | 判断数组是否包含某个值,代替indexOf检查存在 | bool | 否 |
entries | 返回一个Array iterator对象,包含每个索引的键值对 | Array iterator | 否 |
find | 查找元素,返回元素本身,没有返回undefined | * | 否 |
copyWith | 复制数组成员到指定位置,会覆盖原有成员,返回修改了的数组 | array | 是 |
findIndex | 查找元素返回元素索引,没有返回-1 | number | 否 |
fill | 将数组指定区域填充为某个固定值 | array | 是 |
keys | 返回数组索引的迭代器 | Array iterator | 否 |
values | 返回数组的值组成的数组 | array | 否 |
方法具体含义可以看这一篇 数组方法总结