JS数组的拓展方法
JavaScript 数组的拓展方法
JavaScript 提供了很多实用的数组拓展方法,以下列举其中所有(不包含一些废弃的方法):
拓展方法速查
| 改变原数组 | 不改变原数组 | 函数部分 |
|---|---|---|
| push | concat | forEach |
| unshift | slice | map |
| pop | join | filter |
| shift | includes | some |
| splice | indexOf | every |
| reverse | concat | findIndex |
| reduce |
方法示例
concat
Array.prototype.concat:连接两个或多个数组,并返回一个新数组。
copyWithin
Array.prototype.copyWithin:从数组内部复制一段数据到数组另一个位置上,并覆盖原有内容。它接受两个必需参数,第一个参数为目标起始索引,第二个参数为复制起始索引。第三个可选参数为复制结束索引,如果省略将复制至末尾。
entries
Array.prototype.entries:返回一个包含每个元素 key 和 value 的新数组迭代器对象,可以通过 for…of 循环来遍历键值对。
every
Array.prototype.every:检查数组中是否所有元素都符合指定条件,返回布尔值。
fill
Array.prototype.fill:使用一个指定的值填充数组,可以指定填充的起始和结束索引。(注意原数组会被改变)
filter
Array.prototype.filter:过滤出符合条件的元素,返回一个新数组。它接受一个参数,为一个回调函数,这个回调函数会被传入三个参数分别是当前遍历到的元素、该元素的索引和原数组。
1 | const arr = [1, 2, 3, 4, 5]; |
find
Array.prototype.find:找到符合条件的第一个元素,并返回该元素。它接受一个参数,为一个回调函数,这个回调函数会被传入三个参数分别是当前遍历到的元素、该元素的索引和原数组。
1 | const arr = [1, 2, 3, 4, 5]; |
findIndex
Array.prototype.findIndex:找到符合条件的第一个元素的索引,并返回该索引。它接受一个参数,为一个回调函数,这个回调函数会被传入三个参数分别是当前遍历到的元素、该元素的索引和原数组。
1 | const arr = [1, 2, 3, 4, 5]; |
flat
Array.prototype.flat:将嵌套的数组打平为一个一维数组。
flatMap
Array.prototype.flatMap:提供一个指定回调函数进行映射以替换和操作以前的映射,然后将变形数组扁平化为新的数组。
forEach
Array.prototype.forEach:针对数组的每个元素执行一次给定函数。
from
Array.from:从类似数组或可迭代对象中创建一个新数组。
includes
Array.prototype.includes:判断数组是否包含指定的元素,返回布尔值。
indexOf
Array.prototype.indexOf:返回指定元素在数组中首次出现的位置索引,如果不存在则返回 -1。
join
Array.prototype.join:把所有数组元素连接成一个字符串。
keys
Array.prototype.keys:返回一个包含数组中每个索引 key 的新数组迭代器对象。
lastIndexOf
Array.prototype.lastIndexOf:返回一个指定元素在数组中最后出现的位置索引,如果不存在则返回 -1。
map
Array.prototype.map:遍历数组并根据每个元素进行操作,返回一个新数组。它接受一个参数,为一个回调函数,这个回调函数会被传入三个参数分别是当前遍历到的元素、该元素的索引和原数组。
1 | const arr = [1, 2, 3]; |
pop
Array.prototype.pop:删除并返回数组的最后一个元素。
push
Array.prototype.push:向数组末尾添加一个或多个元素,并返回新的长度。
reduce
Array.prototype.reduce:将数组中的每个元素按照指定的方式进行组合,并返回最终结果。它接受两个参数,第一个参数为一个回调函数,第二个参数为初始值(可选),回调函数有四个参数,分别是累计值、当前值、当前索引、原数组。
1 | const arr = [1, 2, 3]; |
reduceRight
Array.prototype.reduceRight:与 reduce 方法类似,不同之处在于它是从右到左遍历数组的。
reverse
Array.prototype.reverse:反转数组中元素的顺序。
shift
Array.prototype.shift:删除并返回数组的第一个元素。
slice
Array.prototype.slice:返回一个从原数组中指定开始、指定结束的子数组。
some
Array.prototype.some:检查数组中是否至少有一个元素符合指定条件,返回布尔值。
sort
Array.prototype.sort:用指定的排序函数对数组元素进行排序。
splice
Array.prototype.splice:通过删除或替换现有元素或者原地添加新的元素来修改数组,并以此返回被修改的内容。(注意原数组会被改变)
toLocaleString
Array.prototype.toLocaleString:把数组转换为本地字符串并返回结果。
toSource
Array.prototype.toSource:返回表示数组字面量的字符串。
toString
Array.prototype.toString:把数组转换为字符串并返回结果。
unshift
Array.prototype.unshift:将一个或多个元素插入到数组开头,并返回新的长度。
values
Array.prototype.values:返回一个包含数组每个值 value 的新数组迭代器对象。
结论:
JavaScript 提供了许多实用的数组拓展方法,我们可以根据不同场景进行选择。这些方法使得我们能够方便地操作数组,大大提高了开发效率。同时这些方法还都支持链式调用,通过在调用之间添加点号
.,可以将多个操作顺序连接起来,以一条语句实现复杂的操作。 concat
