一张图整理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

方法具体含义可以看这一篇 数组方法总结