一张图整理JavaScript数组方法

创建时间.png 2018-12-16
标签.png JavaScript
阅读量.png 5705

对于一个数组方法,我最关心的有两个问题,返回值是什么,会不会对原始数组造成影响,典型的例子就是 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 否

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

webfem 头像
webfem 博客