Exercism诗歌俱乐部门禁题本地正常但在线测试失败求助
问题分析与修复
你的代码核心问题
你误解了函数参数的类型,同时返回值不符合需求:
- 需求里
backDoorResponse的参数line是单个字符串(一行诗句),但你把它当成字符串数组来遍历,导致遍历每个字符而非处理整行。 - 需求要求返回单个字符,但你的代码返回的是字符数组,完全不符合测试用例的预期。
修正后的代码
export function backDoorResponse(line) { // 先去掉首尾空白字符 const trimmedLine = line.trim(); // 返回处理后字符串的最后一个字符 return trimmedLine[trimmedLine.length - 1]; }
代码说明
line.trim():直接对整个输入字符串去除首尾空白,得到无多余空白的有效内容。trimmedLine[trimmedLine.length - 1]:取处理后字符串的最后一个字符,这就是需求要的结果。
比如测试用例:
- 输入
"Stands so high"→trimmedLine是"Stands so high",最后一个字符是"h" - 输入
" Huge hooves too "→trimmedLine是"Huge hooves too",最后一个字符是"o"
这样就能完全符合Exercism的测试要求了。
内容的提问来源于stack exchange,提问作者Penguin Learning
相关产品推荐
相关产品推荐

