我正在使用codecademy来学习JS,并且我通过此函数调用得到间歇性结果。在某些情况下,它会正确显示,但如果我继续重新运行程序,它将在所调用的日期输出undefined。我究竟做错了什么?
詹姆斯的活动是:5K
詹姆斯的训练时间是:未定义的日子
Cleopatra的活动是:骑自行车
Cleopatra的培训时间为:40天
弗雷德里克的活动是:5K
弗雷德里克的训练时间是:未定义的日子
const getRandomEvent = () => {
let random = Math.floor(Math.random() * 3)
if(random === 0){
return "a 5K"
}
else if(random === 1){
return "Cycling"
}
else if(random === 2)
return "Marathon"
}
const getTrainingDays = event =>{
let days;
if(event === "5K"){
days = 60;
}
else if(event === "Cycling"){
days = 40;
}
else if(event === "Marathon"){
days = 250;
}
return days;
}
const event = getRandomEvent();
const days = getTrainingDays(event);
const event2 = getRandomEvent();
const days2 = getTrainingDays(event2);
const event3 = getRandomEvent();
const days3 = getTrainingDays(event3);
const logEvent = (name, event) => console.log(`${name}'s event is: ${event}`);
const logTime = (name, days) => console.log(`${name}'s training time is: ${days} days`);
logEvent("James", event);
logTime("James", days);
logEvent("Cleopatra", event2);
logTime("Cleopatra", days2);
logEvent("Frederick", event3);
logTime("Frederick", days3);
你获得该事件的功能将返回a 5K
为random === 0
,但getTrainingDays
检查event === 5K
。
修复脚本以检查事件a 5K
。
您还应该在适当的位置包含catch all else语句。
考虑以下内容:
const getRandomEvent = () => {
let random = Math.floor(Math.random() * 3);
if (random === 0) {
return "a 5K"
} else if (random === 1) {
return "Cycling"
} else if(random === 2) {
return "Marathon"
}
}
const getTrainingDays = event => {
let days;
if (event === "a 5K") {
days = 60;
} else if (event === "Cycling") {
days = 40;
} else if (event === "Marathon") {
days = 250;
} else {
days = -1;
}
return days;
}