我的代码在输出下方不断返回未定义

时间:2019-03-27 12:01:28

标签: javascript function

我的JavaScript函数不断在正确的输出值下方返回undefined

let grade;

function getGrade(score) {
    // Write your code here
    if (score >= 25 && score <= 30) {
        console.log('A');
    }
    else if (score >= 20 && score <= 25) {
        console.log('B');
    }
    else if (score >= 15 && score <= 20) {
        console.log('C');
    }
    else if (score >= 10 && score <= 15) {
        console.log('D');
    }
    else if (score >= 5 && score <= 10) {
        console.log('E');
    }
    else {
        console.log('F');
    }
    return grade;
}

5 个答案:

答案 0 :(得分:1)

似乎您的底部是return grade;,但似乎grade并未在任何地方定义。

答案 1 :(得分:1)

您应该设置变量“等级”值,或者只是删除

return grade;

答案 2 :(得分:1)

使用return代替console.log()

function getGrade(score) {
    if (score >= 25 && score <= 30) {
        return 'A'
    }
    else if (score >= 20 && score <= 25) {
        return 'B'
    }
    else if (score >= 15 && score <= 20) {
        return 'C';
    }
    else if (score >= 10 && score <= 15) {
        return 'D';
    }
    else if (score >= 5 && score <= 10) {
        return 'E';
    }
    else {
        return 'F';
    }
}
console.log(getGrade(20))

每个等级范围内5黑白之间存在差异,因此您可以使用除法和Math.floor

function getGrade(score) {
    let grades = 'FEDCBA' 
    return score === 30 ? 'A' : grades[Math.floor((score)/5)]    
}
console.log(getGrade(20))
console.log(getGrade(19))
console.log(getGrade(30))

答案 3 :(得分:1)

您尚未定义grade。并且它将始终为undefined

一种方法如下:

function getGrade(score) {
    var grade = "";
    // Write your code here
    if (score >= 25 && score <= 30) {
        grade = "A";
    }
    else if (score >= 20 && score <= 25) {
        grade = "B";
    }
    else if (score >= 15 && score <= 20) {
        grade = "C";
    }
    else if (score >= 10 && score <= 15) {
        grade = "D";
    }
    else if (score >= 5 && score <= 10) {
        grade = "E";
    }
    else {
        grade = "F";
    }
    return grade;
}

console.log(getGrade(27))

答案 4 :(得分:1)

始终检查控制台。目前正在向您唱歌,告诉您grade不确定。

您正在尝试返回尚未分配值的内容。

function getGrade(score) {
    // ... //
    return grade; //<-- nowhere do you define grade
}

应该是

function getGrade(score) {
    let grade;
    if (score >= 25 && score <= 30) grade = 'A';
    else if (score >= 20 && score <= 25) grade = 'B';
    else if (score >= 15 && score <= 20) grade = 'C';
    else if (score >= 10 && score <= 15) grade = 'D';
    else if (score >= 5 && score <= 10) grade = 'E';
    else grade = 'F';
    console.log(grade);
    return grade;
}