Мой код продолжает возвращаться неопределенным под выводом - PullRequest
0 голосов
/ 27 марта 2019

Моя функция 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 ]

1 голос
/ 27 марта 2019

Всегда проверяйте консоль.В настоящее время он поет вам, говоря, что 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;
}
1 голос
/ 27 марта 2019

Вы не определили свой 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))
1 голос
/ 27 марта 2019

Вы должны установить значение переменной "оценка" или просто удалить

return grade;
1 голос
/ 27 марта 2019

Используйте 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))
1 голос
/ 27 марта 2019

Кажется, у вас return grade; внизу, но grade, похоже, нигде не определено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...