js 常用数组方法整理,包括常用的数组常用方法、高阶函数 forEach、filter、map。
1、常用数组方法
点击展示代码
1 |
|
2、高阶函数
1、forEach
forEach()方法对数组的每个元素执行一次给定的函数。
for example:
1 |
|
语法:arr.forEach(callback(currentValue [, index [, array]])[, thisArg])
参数介绍:
callback:为数组中的每个元素执行的函数,该函数接收1~3个参数
currentValue:数组中正在处理的当前元素
index: 数组中正在处理的当前元素的索引
array: forEach()正在操作的数组 数组对象本身
thisArg:可选参数。当执行回调函数callback时,用作this的值。
常见用法:
(1)稀疏数组
不对未初始化的值进行任何操作
1 |
|
(2)for 循环转换成 forEach
1 |
|
(3)thisArg 使用箭头函数 thisArg 参数会被忽略,因为箭头函数绑定了 this 值
(4)对象复制器函数
1 |
|
(5)数组在迭代时被修改了,则其他元素会被跳过
1 |
|
(6)promise 或 async 函数的使用
1 |
|
2、filter
filter()创建一个新数组,其包含通过所提供函数实现的测试的所有元素。 返回满足条件的新数组,不满足则返回空数组。
for example
1 |
|
语法:var newArray = arr.filter(callback(element[, index[, array]])[, thisArg])
参数:
callback:用来测试数组的每个元素的函数。返回 true 表示该元素通过测试,保留该元素,false 则不保留。
element:数组中当前正在处理的元素
index:正在处理的元素在数组中的索引
array:调用filter的数组本身
thisArg:执行callback时,用于this的值
返回值:
一个新的、由通过测试的元素组成的数组,如果没有任何数组元素通过测试,则返回空数组。
用法:
(1)筛选排除所有较小的值
1 |
|
(2)过滤 JSON 中的无效条目
1 |
|
(3)在数组中搜索:根据搜索条件来过滤数组内容
1 |
|
上面是 es5 的写法,下面是 es6 的写法
1 |
|
3、map
map()方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。 原数组不会改变
1 |
|
用法:
(1)格式化数组中的对象
1 |
|
(2)使用包含一个参数的函数来构建一个数字数组
1 |
|
includes比indexOf好在哪里?
includes可以检测NaN,indexOf不能,includes内部使用了Number.isNaN对NaN进行了匹配