持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情
数组的方法使用在项目中随处可在,有些不常用的数组自己的忘了,总结一下数组的方法
首先来看一张图吧
这个在网上看到的对数组某个方法的分类
思考,数组的这些个方法是干嘛的,返回值又是什么
数组的方法介绍
reduce累加
应用场景:
求和,最大值
参数:
sum:上一个回调的返回值
value:当前元素,默认从1开始
index:元素的下标
Source Array (src) (源数组)
返回值:
最后一次return的结果
reduceRight
参数:
callback:一个回调函数,用于操作数组中的每个元素,它可接受四个参数:
accumulator 累加器:上一次调用回调函数时,回调函数返回的值。首次调用回调函数时,如果 initialValue 存在,累加器即为 initialValue,否则须为数组中的最后一个元素
currentValue 当前元素:当前被处理的元素。
index可选 数组中当前被处理的元素的索引。
array可选 调用 reduceRight() 的数组。
MDN上的代码解释
const result = array1.reduceRight((accumulator, currentValue) => accumulator.concat(currentValue));
console.log(result);
放在这里用于自己回忆,说实话,目前还没有碰见过这个,一般我们会直接使用reduce
every、some 检测数组
参数
element 当前元素。
index可选: 当前元素的下标。
array可选: 调用 every 的当前数组
返回值
布尔类型true或false
应用场景
一般用于判断,找元素是否符合条件,开关思想
filter 筛选、过滤
参数
element 当前元素。
index可选: 当前元素的下标。
array可选: 调用 every 的当前数组
返回值
符合条件的新数组
应用场景
一般筛选,过滤,成为新的数组
forEach 循环
参数
currentValue 当前元素。
index可选: 当前元素的下标。
array可选: 调用 every 的当前数组
返回值
无
应用场景
循环
map 映射
参数
currentValue 当前元素。
index可选: 当前元素的下标。
array可选: 调用 every 的当前数组
返回值
映射一个数组。如果没有return,新数组都是undefined
indexof 找数组的下标
参数
searchElement:要查找的元素
返回值
第一个元素的索引或下标,不存在,则返回-1。
MDN上的示例
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];
console.log(beasts.indexOf('bison'));
// expected output: 1
concat 连接数组
参数
valueN可选 数组和/或值,将被合并到一个新的数组中。如果省略了所有 valueN 参数,则 concat 会返回调用此方法的现存数组的一个浅拷贝
返回值
合并后的新数组
console.log([1, 2, 3].concat([4,5,6]))
结果为123456
splice 删除任意数量的项
参数
star:必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。
deleteCount:必选项。要移除的元素的个数。
item1:要在所移除元素的位置上插入的新元素。
返回值
返回值是一个由所移除的元素组成的新Array对象。
slice 从已有的数组中返回选定的元素(数组单元的截取)
参数
start:可选。规定从何处开始选取。如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取
end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。
返回值
返回一个新的数组,包含从 start到 end (不包括该元素)