【发布时间】:2022-12-09 03:43:18
【问题描述】:
我正在对代码战争进行测试,如果名称以“r”或“R”开头,它会要求我返回name + 'plays banjo'。我有以下代码
const name = 'randy'
function areYouPlayingBanjo(name) {
const firstLetter = name.split('', 1)
if (firstLetter==='R' || firstLetter==='r'){
return `plays banjo`
}else{
`does not play banjo`
}
}
console.log(areYouPlayingBanjo(name))
每当我运行它时,它只返回 if 语句,而不是 if 语句的值。我究竟做错了什么?为什么它不返回 if 语句的“返回”部分而不是整个语句?
【问题讨论】:
-
你期望它返回什么?一旦一个函数
returns,它就完成了。您只返回plays banjo。您不会返回任何其他内容,即使在您的else声明中也是如此。 -
您在
else块中缺少return,并且您缺少在if块的返回值中包含name -
split返回一个数组,但您没有对第一个元素做任何事情。name[0]更简洁。
标签: javascript corewars