Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用函数时未定义,但它没有';不要每次打电话都这样_Javascript - Fatal编程技术网

Javascript 调用函数时未定义,但它没有';不要每次打电话都这样

Javascript 调用函数时未定义,但它没有';不要每次打电话都这样,javascript,Javascript,我正在使用codecademy学习JS,这个函数调用会得到断断续续的结果。在某些情况下,它会正确显示,但如果我继续重新运行该程序,它将在调用的天数内输出未定义。我做错了什么 詹姆斯的项目是:5公里 詹姆斯的训练时间是:未定义的天数 const getRandomEvent = () => { let random = Math.floor(Math.random() * 3) if(random === 0){ return "a 5K" } else if(random ===

我正在使用codecademy学习JS,这个函数调用会得到断断续续的结果。在某些情况下,它会正确显示,但如果我继续重新运行该程序,它将在调用的天数内输出未定义。我做错了什么

詹姆斯的项目是:5公里

詹姆斯的训练时间是:未定义的天数

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);
克利奥帕特拉的活动是:骑自行车

克利奥帕特拉的训练时间是:40天

弗雷德里克的项目是:5公里

弗雷德里克的训练时间是:未定义的天数

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);

获取事件的函数将为
random==0
返回
5K
,但
getTrainingDays
检查
事件===5K

修复脚本以检查事件
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;
}

因为
“一个5K”!==“5K”
,所以
事件===“5K”
从来都不是
真的
。我在这里做了一个愚蠢的更改,让我重新检查了30分钟的代码:|。谢谢你的帮助