exercism.org不接受我的JavaScript解题代码该如何解决
Exercism JavaScript 赛道 Lasagna 练习提交报错解决方案
报错核心原因
本地运行正常但在线校验不通过,本质是没有遵循平台的代码提交规范,几个常见踩坑点如下:
- 遗漏
export声明:平台自动测试脚本基于ES模块规范,会直接导入你文件里定义的常量、函数执行校验,如果删掉了模板里自带的export关键字,测试脚本无法读取到你写的逻辑,会直接判定失败。 - 残留调试代码:本地写的
console.log()打印语句属于调试内容,不属于题目要求实现的功能,额外的控制台输出会干扰测试结果判定,提交前必须全部删除。 - 未删除占位语句:模板里函数内部默认的
throw new Error('请实现该函数')是提示占位行,写完函数逻辑后要删掉这行,否则函数执行时会直接抛出异常,无法返回正确结果。 - 硬编码常量值:计算准备时间时直接写死数字2不符合题目要求,需要复用开头定义的
PREPARATION_MINUTES_PER_LAYER常量,硬编码虽然计算结果正确,但不符合编码规范,会被校验判定不通过。
可直接提交的正确代码
export const PREPARATION_MINUTES_PER_LAYER = 2; export const EXPECTED_MINUTES_IN_OVEN = 40; export function remainingMinutesInOven(actualMinutesInOven) { return EXPECTED_MINUTES_IN_OVEN - actualMinutesInOven; } export function preparationTimeInMinutes(numberOfLayers) { return numberOfLayers * PREPARATION_MINUTES_PER_LAYER; } export function totalTimeInMinutes(numberOfLayers, actualMinutesInOven) { return preparationTimeInMinutes(numberOfLayers) + actualMinutesInOven; }
通用注意事项
Exercism所有赛道的初始模板结构都是为适配自动测试框架设计的,除了明确标注需要删除替换的占位代码外,不要随意修改模板自带的导出、函数名、常量名等结构;本地调试加的打印、测试调用代码,提交前要全部清理干净。
内容的提问来源于stack exchange,提问作者Ahmad
相关产品推荐
相关产品推荐

