JavaScript:箭头函数(lambda表达式)作为 callback 回调函数 作者:马育民 • 2025-03-09 22:21 • 阅读:10070 # 提出问题 有数组如下: ``` let arr = [1,2,3,10,20,100,500] ``` 定义函数,可以实现过滤功能,比如: - 打印出数组中的偶数 - 打印出大于 `3` 的值 - 打印出小于 `10` 的值 ## 分析 如果按照传统方式定义3个函数: - 第一个函数:打印出数组中的偶数 - 第二个函数:只能打印大于 `3` 的值 - 第三个函数:只能打印出小于 `10` 的值 显然太笨了,如下: ``` let arr = [1,2,3,10,20,100,500] function fun1(arr){ for( let item of arr){ if(item % 2 == 0){ console.log(item) } } } fun1(arr) ``` ## 解决 可以使用回调函数 #### 定义主函数 **形参:** - 参数1:数组 - 参数2:回调函数,该回调函数是对数组进行的操作 **功能:**遍历数组,并执行回调函数,将数组的元素传给该回调函数,如果该函数返回 `true`,表示符合条件,就打印该元素 ``` function fun(arr,callback){ for( let item of arr){ let res = callback(item) if(res){ console.log(item) } } } ``` #### 定义回调函数 **形参:**数组的一个元素 **功能:**定义过滤规则,即:能被 `2` 整除就打印,如下: ``` function callback(e){ return e % 2 == 0 } ``` 调用函数: ``` fun(arr , callback) ``` #### 改写上面回调函数为 箭头函数 调用函数时,传入箭头函数: ``` fun(arr , (e) => { return e % 2 == 0 }) ``` #### 简化上面的箭头函数 调用函数时,传入箭头函数: ``` fun(arr , (e) => e % 2 == 0 ) ``` ### 总结 **箭头函数** 作为回调函数,可以 **简化** 定义过滤规则 原文出处:https://malaoshi.top/show_1GWjJIN1fUm.html