今天总结一下常用的JS数组方法,以免搞忘了或者记混了,大家觉得还有哪些数组方法在项目里用的特别多我没提到的可以补充。。
map 有返回值 且 不改变原数组。
2. forEach :遍历数组每一项并可对其操作,但是结果无用功。 因为forEach没有返回值 且 不改变原数组 可以针对数组的长度对你想要改变的变量进行修改。
3. 方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值。每一项都会遍历。
4.every :
5.filter: 顾名思义 过滤 该数组方法就是能够做到拿到你想要得到的那条数据的一个数组 注意是数组! 不会改变原数组
6. concat: 合并 该方法是将两个数组或多个数组合并成一个数组 不会改变原数组 可以采用扩展运算符... 结果是一样的
reduce: 这个方法相当强大 基本上所有操作都可以实现 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。 参数callback,
//initialValue(不传 默认取数组的第一个元素)
// reducer 函数接收4个参数:
// Accumulator (acc) (累计器)
// Current Value (cur) (当前值)
// Current Index (idx) (当前索引)
// Source Array (src) (源数组)
注意:下面分场景分别介绍一下reduce这个方法的强大之处
8.slice: 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。同样不会对原数组改变
9. splice(start[, deleteCount[, item1[, item2[, ...]]]]): 这个方法之前一直和slice分不清楚,其实它们有个最大的不同点就是,这个方法是改变原数组的,不会重新开辟一个空间去改变数组长度。
参数 start 指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从-1计数,这意味着-n是倒数第n个元素并且等
价于array.length-n);如果负数的绝对值大于数组的长度,则表示开始位置为第0位。
deleteCount 可选 整数,表示要移除的数组元素的个数。
item1, item2, ... 可选 要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 将只删除数组元素。
10. pop:没有参数,负责删除数组的最后一个元素,改变原数组
11. push: 像数组末尾添加一个元素或多个元素 arr.push(element1, ..., elementN)
12.shift: 删除数组的第一个元素 改变原数组
13.unshift: 在数组首位添加一个或多个元素
fill : 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
rr.fill(value[, start[, end]])
参数:value 填充数组元素的值
start 起始索引 默认0
end 终止索引 默认this.length
15. flat: 大家对这个方法一定不熟悉,我在一次做项目的时候用到了它,下面 看看它的作用 方法很强大 扁平化数组 但是有兼容性的影响
16.join: 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。
17. find : 方法返回数组中满足提供的测试函数的第一个元素 的值。否则返回 undefined。 注意是第一个
18.findIndex: 方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。 注意是第一个
19.indexOf: 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
先总结这些,后续会补充,还会总结一些对象常用的方法,只有不断总结,才能让自己对这些方法不陌生,才能在项目中能有多种解决方法,选择一种最优解。