数组填充方法
fill()
方法用一个固定值填充一个数组中从起始索引(默认为 0
)到终止索引(默认为 array.length
)内的全部元素。它返回修改后的数组。(修改值不修改长度)
数组增加/删除元素方法
push()
方法将指定的元素添加到数组的末尾,并返回新的数组长度。
unshift()
方法将指定元素添加到数组的开头,并返回数组的新长度。
pop()
方法从数组中删除最后一个元素,并返回该元素的值。此方法会更改数组的长度。
shift()
方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
concat()
方法用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。
splice()
方法就地移除或者替换已存在的元素和/或添加新的元素。(splice既可以删除元素也可以添加元素)
toSpliced()
方法是 splice() 方法的复制版本。它返回一个新数组,并在给定的索引处删除和/或替换了一些元素。
数组替换元素方法
with()
方法是使用方括号表示法修改指定索引值的复制方法版本。它会返回一个新数组,其指定索引处的值会被新值替换。
splice()
方法就地移除或者替换已存在的元素和/或添加新的元素。(splice既可以删除元素也可以添加元素)
toSpliced()
方法是 splice() 方法的复制版本。它返回一个新数组,并在给定的索引处删除和/或替换了一些元素。
数组筛选判断方法
every()
方法测试一个数组内的所有元素是否都能通过指定函数的测试。它返回一个布尔值。
filter()
方法创建给定数组一部分的浅拷贝,其包含通过所提供函数实现的测试的所有元素。
includes()
方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true
,否则返回 false
。
some()
方法测试数组中是否至少有一个元素通过了由提供的函数实现的测试。如果在数组中找到一个元素使得提供的函数返回 true,则返回 true;否则返回 false。它不会修改数组。
数组拷贝方法
copyWithin()
方法浅复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。(修改值不修改长度)
slice()
方法返回一个新的数组对象,这一对象是一个由 start
和 end
决定的原数组的浅拷贝(包括 start
,不包括 end
),其中 start
和 end
代表了数组元素的索引。原始数组不会被改变。
flat()
方法创建一个新的数组,并根据指定深度递归地将所有子数组元素拼接到新的数组中。
flat()
方法属于复制方法。它不会改变 this
数组,而是返回一个浅拷贝,该浅拷贝包含了原始数组中相同的元素。
flatMap()
方法对数组中的每个元素应用给定的回调函数,然后将结果展开一级,返回一个新数组。它等价于在调用 map() 方法后再调用深度为 1 的 flat() 方法(arr.map(...args).flat()
),但比分别调用这两个方法稍微更高效一些。
数组查找方法
find()
方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。
findIndex()
方法返回数组中满足提供的测试函数的第一个元素的索引。若没有找到对应元素则返回 -1。
findLast()
方法反向迭代数组,并返回满足提供的测试函数的第一个元素的值。如果没有找到对应元素,则返回 undefined。
findLastIndex()
方法反向迭代数组,并返回满足所提供的测试函数的第一个元素的索引。若没有找到对应元素,则返回 -1。
indexOf()
方法返回数组中第一次出现给定元素的下标,如果不存在则返回 -1。
lastIndexOf()
方法返回数组中给定元素最后一次出现的索引,如果不存在则返回 -1。该方法从 fromIndex
开始向前搜索数组。
将数组拼接为字符串
join()
方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串,用逗号或指定的分隔符字符串分隔。如果数组只有一个元素,那么将返回该元素而不使用分隔符。
toLocaleString()
方法返回一个字符串,表示数组中的所有元素。每个元素通过调用它们自己的 toLocaleString
方法转换为字符串,并且使用特定于语言环境的字符串(例如逗号“,”)分隔开。
toString()
方法返回一个字符串,表示指定的数组及其元素。
返回数组迭代器对象
entries()
方法返回一个新的数组迭代器对象,该对象包含数组中每个索引的键/值对。
keys()
方法返回一个新的数组迭代器对象,其中包含数组中每个索引的键。
values()
方法返回一个新的数组迭代器对象,该对象迭代数组中每个元素的值。
遍历数组执行固定操作
forEach()
方法对数组的每个元素执行一次给定的函数。
map()
方法创建一个新数组,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。
reduce()
方法对数组中的每个元素按序执行一个提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。
第一次执行回调函数时,不存在“上一次的计算结果”。如果需要回调函数从数组索引为 0 的元素开始执行,则需要传递初始值。否则,数组索引为 0 的元素将被用作初始值,迭代器将从第二个元素开始执行(即从索引为 1 而不是 0 的位置开始)。
Array.reduce(callbackFn)
Array.reduce((callbackFn, initialValue)={})
//callbackFn(回调函数)
//(accumulator, currentValue) => {......},
//accumulator为上一次返回的结果
//currentValue为当前遍历元素
//initialValue为自定义的初始值
数组排序方法
sort()
方法就地对数组的元素进行排序,并返回对相同数组的引用。默认排序是将元素转换为字符串,然后按照它们的 UTF-16 码元值升序排序。
sort(compareFn)
//compareFn指定一个定义排序顺序的函数。如果省略,则将数组元素转换为字符串,然后根据每个字符的 Unicode 码位值进行排序。
sorted((a, b) => { /* … */ })
//a用于比较的第一个元素。
//b用于比较的第二个元素。
如果省略该函数,数组元素会被转换为字符串,然后根据每个字符的 Unicode 码位值进行排序。
toSorted()
方法是 sort() 方法的复制方法版本。它返回一个新数组,其元素按升序排列
数组翻转方法
reverse()
方法就地反转数组中的元素,并返回同一数组的引用。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。换句话说,数组中的元素顺序将被翻转,变为与之前相反的方向。
Array 实例的 toReversed()
方法是 reverse() 方法对应的复制版本。它返回一个元素顺序相反的新数组。