JavaScript常用高阶函数
常用高阶函数
- forEach —— 遍历数组(无返回值)
- find —— 查找器,查找符合条件的数据(只找第一个,找到就返回,停止查找)
- filter —— 过滤器,筛选数组中符合条件的数据,并以 数组 的方式返回
- sort —— 排序器,代替冒泡排序(返回值为排好的 新数组)
- map —— 高级遍历(修改数据、提取数据、返回值为修改后的 新数组)
- some —— 或判断器(遍历数组,有一条为true,返回值为true,反之则以)
- every —— 与判断器(遍历数组,有一条为false,返回值为false,反之则以)
- reduce —— 累(加减乘除)器(返回值为累加减乘除后的数)
以上高阶函数都用到循环,参数里边的函数体皆为循环体,所有形参里的函数形参都可以自定义,但推荐使用语义化单词
注意:以下的item,index,arr可选填(不用时可不填)
生单词表:
生词 | 翻译 | 生词 | 翻译 |
---|---|---|---|
Each | 每个、各自 | map | n.地图(提供信息) |
every | 每一个 | find | 找到、找出 |
filter | 过滤器 | reduce | 减少(累(+-*/%)器) |
next | 下一个 | prev | 前一个 |
item | 项 | index | 索引、下标 |
Sort | 分类、排序 | total | 全部的、总计 |
高阶函数-介绍
只要满足其一就为高级函数:
- 函数的参数是函数
- 函数返回值是函数
1.forEach数组遍历(for循环简版)
作用:for循环简版
语法:
1 | arr.forEach(function(item,index){ |
注意:无返回值
2.find查找器
作用:查找符合条件的数据(找到第一个就停止查找),返回值为查找到的数据
语法:
1 | var arr = [2,3,5,6] |
3.fileter过滤器
作用:筛选数组中符合条件的数据,并以 数组 的方式返回
语法:
1 | var arr = [1,2,3,4,5] |
4.sort排序器
作用:可根据条件进行排序(类似冒泡排序,代替冒泡排序)
语法:
1 | var arr = [5,4,1,3,2] |
5.map高级遍历
作用:便利数组,可在循环体中修改提取数据,返回值为修改后的 新数组
语法:
1 | var arr = [1,2,12,24,8,67,51,9,42,7] |
注意:和forEach的区别是map会返回修改后的新数组,forEach不会
6.some或判断器
作用:判断数组里是否有符合条件的数据,有则返回true
语法: (只要有一个符合条件,整体为true,反之则以)
1 | var arr = [{s:false},{s:false},{s:true},{s:false}] |
相当于||(或)
7.every与判断器
作用:判断数组里的所有数据是否符合条件,全部符合则为true,反正则为false
语法: (判断条件全为true的情况下整体返回 true)
1 | var arr = [10,20,30,40,50] |
相当于&&(与)
8.reduce累(加减乘除、取余)器
作用:累加、累减、累乘、累除、累取余,灵活应用可用于进制转换
语法:
1 | var arr = [1,2,3,4,5,6] |
⚠️提示 : 并不仅用于累加累减累成累除项与项之间的计算公式可自定