Skip to main content

Array方法速记表

** 数组方法 **

方法名注解返回值js 版本
Array.isArray(obj)检测对象是否是 Array ,是则返回 true,否则为 false。Boolean5
Array.from(arrayLike, mapFn, thisArg)该方法从一个类似数组或可迭代对象创建一个新的数组实例。参数 arrayLike 是想要转换成真实数组的类数组对象或可遍历对象。mapFn 是可选参数,如果指定了该参数,则最后生成的数组会经过该函数的加工处理后再返回。thisArg 是可选参数,为执行 mapFn 函数时 this 的值。Array6
Array.of(item…)该方法用于创建数组实例。该方法用于替代 Array() 或 new Array()。Array.of() 和 Array 构造函数之间的区别在于处理整数参数:Array.of(7) 创建一个具有单个元素 7 的数组,而 Array(7) 创建一个包含 7 个 undefined 元素的数组。Boolean6

** 数组实例方法 **

改变原数组方法: push、pop、unshift、shift、reverse、sort、splice、copyWithin、fill

方法名改变原数组注解返回值js 版本
join(separator)把数组构构造成字符串,它先把数组中的每个元素转换成字符串,然后再用 separator 分隔符把它们链接在一起,separator 分隔符默认是逗号 “,”,要想做到无间隔链接,可以使用空字符串作为 separatorString3
push(item…)将一个或多个新元素添加到数组结尾,并返回数组新长度。Number3
pop()移除最后一个元素并返回该元素值。*3
unshift(item…)将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度。Number3
shift()移除最前一个元素并返回该元素值,数组中元素自动前移.如果这个数组是空的,它会返回 undefined。shift 通常比 pop 慢的多。*3
reverse()反转数组的顺序。Array3
sort(comparefn)给数组排序,默认升序。 注意 sort 默认会将数组内容视为字符串来排序,所以对数字排序时默认的排序规则会错的离谱。一般我们给 sort 带入个比较函数来替代原来的默认的比较方法,比较方法接受两个参数,如果两个参数相等则返回 0,如果第一个参数应该排在前面则返回一个负数,如果第二个参数应该排在前面则返回一个正数Array3
concat(item…)该方法产生一份 arr 的潜复制,并将多个数组(也可以是字符串,或者是数组和字符串的混合)附加在其后连接为一个数组,返回连接好的新的数组。Array3
slice(start, end)该方法对数组中的一段做浅复制,首先复制数组 arr[start] 至 arr[end] 的部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素(或者理解成 end 的默认值为 length)。Array3
splice(start, deleteCount, item…)该方法从 arr 中移除一个或多个元素,并将新的 item 插入至移除元素的开始位置, 参数 start 是移除元素的开始位置,deleteCount 是要移除的元素的个数,item 是要被插入的元素。它返回一个包含被移除元素的数组。Array3
copyWithin(target, start, end)该方法复制数组的一部分到同一数组中的另一个位置(会覆盖原成员),并返回修改后的数组。使用这个方法,会修改当前数组。参数 target 为开始替换数据的位置,若 target 大于等于 arr.length,将会不发生拷贝。start 是可选参数,为开始读取数据的位置,默认为 0。end 是可选参数,为停止读取数据的位置,默认为 arr.length。Array6
fill(value, start, end)该方法使用给定值填充一个数组,参数 value 是用来填充数组的值。start 是可选参数,为填充开始位置,默认为 0。end 是可选参数,为填充的结束位置,默认为 arr.length。Array6
indexOf(searchElement, start)该方法返回要查找的项在数组中的位置,如果没找到返回 -1。接受两个参数,searchElement 是要查找的项,start 是查找起始位置的索引,默认是 0。Number5
lastIndexOf(searchElement, start)从 start 位置开始向前查找,start 默认值为 arr.length – 1。注意该方法在比较查找项与数组中每一项时,会使用全等操作符,也就是要求查找的项必须严格相等。Number5
includes(searchElement, fromIndex)该方法用来判断当前数组是否包含某指定的值(可以判断 NaN),如果是,则返回 true,否则返回 false。参数 searchElement 为需要查找的元素值。参数 fromIndex 是可选参数,从该索引处开始查找 searchElement,如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索,默认为 0。 如果 fromIndex 大于等于数组长度 ,则返回 false 。该数组不会被搜索。Boolean6
every(callback,thisArg)对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 true。callback 被调用时传入三个参数:元素值,元素的索引,原数组。thisArg 为可选参数,指定执行 callback 时使用的 this 值。Boolean5
some(callback, thisArg)对数组中的每一项运行给定函数,如果该函数对任意一项返回 true,则返回 true。Boolean5
filter(callback, thisArg)对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。Array5
forEach(callback)对数组中的每一项运行给定函数,这个方法没有返回值。本质上与使用 for 循环迭代数组一样。undefined5
map(callback)对数组中的每一项运行给定函数,返回每次函数调用组成的数组。Array5
find(callback, thisArg)该方法对数组所有成员依次执行 callback 函数,直到找出第一个返回值为 true 的成员,然后返回该成员。如果没有符合条件的成员,则返回 undefined。find 方法的回调函数可以接受三个参数,依次为当前的值、当前的位置和原数组*6
findIndex(callback, thisArg)该方法与 arr.find() 类似,对数组中的成员依次执行 callback 函数,直至找出第一个返回值为 true 的成员,然后返回该成员的索引。如果没有符合条件的成员,则返回 -1。Number6
entries()返回一个新的 Array Iterator 对象,可以用 for...of 循环进行对键值对的遍历。Iterator6
keys()返回一个新的 Array Iterator 对象,可以用 for...of 循环进行对键名的遍历。Iterator6
values()返回一个新的 Array Iterator 对象,可以用 for...of 循环进行对键值的遍历。Iterator6
reduce(callback, initialValue)从数组的第一项开始,逐个遍历到最后,迭代数组所有的项,然后返回一个最终值。接受两个参数,callback 每一项上调用的函数,callback 被调用时传入四个参数:上一次调用回调返回的值、正在处理的元素、正在处理的元素的索引值(如果提供了 initialValue ,从 0 开始;否则从 1 开始)、原数组。initialValue 是可选项,作为归并基础的初始值,其值用于第一次调用 callback 的第一个参数。*5
reduceRight(callback, initialValue)数组的最后一项开始,向前遍历到第一项,迭代数组所有的项,然后返回一个最终值。接受两个参数,callback 每一项上调用的函数,callback 被调用时传入四个参数:上一次调用回调返回的值、正在处理的元素、正在处理的元素的索引值(如果提供了 initialValue ,从 0 开始;否则从 1 开始)、原数组。initialValue 是可选项,作为归并基础的初始值,其值用于第一次调用 callback 的第一个参数。*5

数组方法图

原文链接: http://www.ferecord.com/lujs-array.html