JavaScript循环题疑问:符合要求的代码为何无法通过检测?
JavaScript循环题无法通过检测的问题分析
你的代码无法通过检测的核心问题有两个,最关键的是函数没有返回目标字符串,其次是输出形式不符合检测要求:
问题1:未按要求返回字符串
题目明确要求“将所有能被7整除的数字拼接成字符串并返回”,但你的两个方案都只是用console.log打印结果,没有通过return语句返回拼接后的字符串。检测系统会直接调用easyLoop()函数,获取它的返回值来判断是否正确,而非读取控制台的输出内容。
问题2:输出形式不符合预期
第一个方案里你打印时给结果套了外层引号,但题目给出的预期输出'0714212835424956637077849198'中的引号是用来标识这是字符串类型,并非字符串本身包含引号;第二个方案打印的是无引号的内容,但依然没解决“返回值”的核心问题。
修正后的代码
function easyLoop() { var result = ""; for(var i = 0; i <= 99; i++){ if(i % 7 === 0){ result += i; } } return result; // 关键:返回拼接好的字符串 }
调用这个函数时,easyLoop()会直接返回目标字符串,完全符合题目要求。另外,循环条件改成i <= 99也不会影响结果,因为99无法被7整除,不会被拼接到结果里;原来的i < 99其实也能遍历到98(7的14倍),这部分逻辑是没问题的。
内容的提问来源于stack exchange,提问作者terry ikporo
相关产品推荐
相关产品推荐

