文章目录
- 0. 给定一个数组
- 1. find():查找成员对象
- 2. findIndex():查找成员下标
- 3. filter():过滤数组
- 4. forEach():迭代数组
- 5. some()和every():量词遍历
- 6. map():变换
- 7. reduce():规约
0. 给定一个数组
1. find():查找成员对象
用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。find()返回的结果是一个对象。
字符串查找可参考这里
2. findIndex():查找成员下标
返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1。findIndex()返回的结果是一个整型的值。
3. filter():过滤数组
使用指定的回调函数测试所有数组元素,并创建一个包含所有通过测试的元素构成的新数组。filter()不改变原数组内容,返回的结果是一个新的数组。
返回值
注意:上边所述的函数都是有返回值的。因此,箭头函数体部分都是一个可以得到布尔值的表达式,而不是一个语句块{…}。当然也可以显式return一个具有布尔值的表达式。
4. forEach():迭代数组
遍历数组所有元素,利用回调函数对数组的每一个元素进行操作。不支持break或continue关键字。特别地,return只用于决定是否结束当前循环(不是整个循环),类似continue。forEach()仅是一个遍历操作,没有返回值——可理解为返回void。forEach()不会修改原来的数组。
既然是操作,箭头函数体部分当然要使用{…}语句块形式。
特殊方法修改原数组内容
结果
5. some()和every():量词遍历
两个函数都遍历数组中的所有元素。两个函数都返回布尔值。
- some()
存在量词,数组中只要存在(至少一个)满足条件的元素就返回true,否则返回false。 - every()
全称量词,数组中的元素必须都满足条件才返回true,否则返回false。
6. map():变换
依次处理数组中的每一个元素。每一个元素均被map()定义的回调函数进行变换,将变换后的元素再收集起来,最终返回一个新的数组。
map()不会对空数组进行处理,不会改变原始数组。
数组成员是对象的变换
结果
7. reduce():规约
这里“规约”类似于SQL中的聚合函数。即把一个数组表达的集合聚合为一个值——多个值变一个值。该函数最终返回一个单值。