Codewars代码无法通过检测,请问问题出在哪里?
问题排查:Codewars代码无法通过测试
问题现象
测试时提示:
expected undefined to deeply equal [ 'Ryan', 'Mark' ]
翻译:预期结果不为undefined,需与数组 ['Ryan', 'Mark'] 深度匹配
代码问题分析
你写的friend函数筛选逻辑是对的——遍历输入数组,把长度为4的元素存入here数组,但函数没有返回这个筛选后的数组。Codewars的测试用例会校验函数的返回值,而JavaScript中没有显式return的函数默认返回undefined,这就导致测试用例拿不到正确结果,从而报错。
修正后的代码
function friend(friends){ let here =[]; for (let i = 0; i < friends.length; i++) { if (friends[i].length == 4){ here.push(friends[i]); } } return here; // 必须添加return返回筛选结果,可保留console.log用于调试 } friend([ 'Ace', 'Luffy', 'Zoro', 'Nami', 'Ussop' ]);
内容的提问来源于stack exchange,提问作者Nelson Castro
相关产品推荐
相关产品推荐

