如何修复Exercism练习中JavaScript版two fer程序的bug
修复方案
问题原因
你的代码仅判断了参数是否为空字符串,没有处理「未传入参数」的场景:当调用twoFer()不传递任何参数时,形参name的值为undefined,现有判断name !== ""会把undefined判定为符合条件,返回One for undefined, one for me.,不符合需求。
最优修复写法
直接给参数加默认值,配合模板字符串简化代码,完全覆盖需求:
export const twoFer = (name = "you") => { return `One for ${name}, one for me.` }
兼容原有写法的修复方案
如果你想保留原有if/else的代码结构,修改判断条件即可:
export const twoFer = (name) => { if (name) { return "One for " + name + ", one for me." } else { return "One for you, one for me." } }
注:上述if(name)的判断逻辑会自动过滤undefined、空字符串、null等无效值,符合题目的输入场景要求。
内容的提问来源于stack exchange,提问作者erfan_bp99
相关产品推荐
相关产品推荐

