Codecademy JS高阶函数checkConsistentOutput练习无法通过求解
问题原因
你实现的checkConsistentOutput内部的变量声明、条件判断逻辑本身符合题目要求,无法通过测试的核心问题是最后一步的打印逻辑不符合要求:
题目明确要求最终需要调用你实现的高阶函数checkConsistentOutput(),传入两个参数(addTwo函数本身、任意测试数值),再打印这个调用的返回结果。但你写的console.log(addTwo(5));是直接调用原生的加2函数,完全没有触发checkConsistentOutput的校验逻辑,测试脚本检测不到目标函数的执行结果,自然判定不通过。
另外代码存在一处不规范细节:let checkB = func(val)行尾缺少分号,开启严格格式校验的测试环境可能将其判定为错误。
修正方案
- 补全
checkB声明语句的行尾分号 - 将最后的打印语句改为调用
checkConsistentOutput,注意传入addTwo时不要加括号(加括号会直接执行函数,把返回值当参数传入,不符合高阶函数接收回调引用的要求),第二个参数可以传任意数值。
修正后的完整可运行代码:
const addTwo = num => { return num + 2; } const checkConsistentOutput = (func, val) => { let checkA = val + 2; let checkB = func(val); if (checkA === checkB) { return func(val); } else { return 'inconsistent results'; } } // 第二个参数传3、5等任意数值都可以 console.log(checkConsistentOutput(addTwo, 3));
内容的提问来源于stack exchange,提问作者02pirateking
相关产品推荐
相关产品推荐

