JavaScript的forEach方法传入回调函数的未使用参数b的作用是什么
关于forEach回调参数b的作用说明
我们先逐行拆解代码的执行逻辑,再明确参数b的用途:
代码完整执行流程
var tab = [2, 3, 5]; tab.map(x => x + 3) // 遍历每个元素+3,得到 [5,6,8] .filter(x => x > 5) // 过滤掉≤5的元素,得到 [6,8] .forEach(function(a,b){console.log(a-3);}); // 遍历[6,8]执行打印
参数b的定义
Array.prototype.forEach的回调函数默认按顺序接收3个固定参数:
- 第一个参数:当前遍历到的元素的值,对应代码里的
a,遍历过程中分别取值6、8 - 第二个参数:当前遍历元素对应的数组索引下标,对应代码里的
b,遍历过程中分别取值0、1 - 第三个可选参数:当前正在被遍历的数组本身,这里没声明
这段代码里b的实际作用
你贴的代码中只在参数里声明了b,但后续打印逻辑完全没有用到这个参数,属于无用的冗余声明,删掉b不影响任何执行结果,这段代码最终只会输出:
3 5
只有当你需要用到索引做逻辑判断(比如只打印下标为偶数的元素)时,才需要声明这个参数。
内容的提问来源于stack exchange,提问作者Hamza
相关产品推荐
相关产品推荐

