Как добавить печатное сообщение из console.log непосредственно в строку функции возврата в javascript? - PullRequest
0 голосов
/ 23 февраля 2020

// Задача состоит в том, чтобы сказать, что если кто-то получит 15 из 20 вопросов, он получит 75%, то есть C. // 15/20 это 75% ... вы получили C (75%)! // 90 до 100, A, B 80-89, C 70-79, D 60-69, F 0-59

Как добавить буквенные оценки в мой вызов функции возврата строки функции?

let studentGrade = function (score, total =100) {

    let totalGrade = (score / total)
    let totalPercent = (totalGrade * 100)

    if (score >=90 && score <=100) {
        console.log('You got an A!')
    }

    else if (score >=80 && score <=89) {
        console.log('You got an B!')
    }

    else if (score >=70 && score <=79) {
        console.log('You got an C!')
    }

    else if (score >=60 && score <=69) {
        console.log('You got a D!')
    }

    else if (score <=59 ) {
        console.log('You got an E!')
    }

    return (`You scored ${score} of a total of ${total} questions, that is ${totalPercent}%, which is a X`)

}

let studentOne = studentGrade (50, 100)
console.log(studentOne)

Ответы [ 3 ]

0 голосов
/ 23 февраля 2020

Предполагая, что вас интересует только возвращаемое письмо, вы можете структурировать свой код примерно так.

let studentGrade = (score, total = 100) => {
    const totalGrade = (score / total);
    const totalPercent = (totalGrade * 100);
    let grade;

    if (score >=90 && score <=100) {
        grade = "A";
    } else if (score >=80 && score <=89) {
        grade = "B";
    } else if (...) {
    ...
    } else {
        ...
    }

    console.log(`You got a ${grade}!`); // Could be grammatically incorrect but you could wrap logic to make this correct
    return grade; 
}

let studentOne = studentGrade(95, 100);
console.log(studentOne); // "A"

Таким образом, у вас есть возможность полностью удалить оператор журнала из функции studentGrade, возлагая на него единственную ответственность - вычислять оценку и не сталкиваться с выходными данными.

0 голосов
/ 24 февраля 2020

Спасибо, что помогло!

let studentGrade = function (score, total) {
let totalPercent = (score / total) * 100
let letterGrade = ''

if (totalPercent >= 90) {
    letterGrade = 'A'
}
else if (totalPercent >=80) {
    letterGrade = 'B'
}
else if (totalPercent >=70) {
    letterGrade = 'C'   
}
else if (totalPercent >=60) {
    letterGrade = 'D'
}
else {
    letterGrade = 'F'
}

return `You scored ${score} of a total of ${total} questions, that is 
${totalPercent}%, which is a ${letterGrade}`

}

let studentOne = studentGrade (50, 100)
console.log(studentOne)
0 голосов
/ 23 февраля 2020

Добавить неустановленную переменную в начале, как let thisGrade;. Установите thisGrade в A или в любом другом классе, в if-else logi c.

Затем вы можете использовать подстановку шаблона, чтобы включить ${thisGrade} в возвращаемое значение.

Вы также можете уменьшить количество повторений, имея только один оператор console.log после завершения if-else logi c, что также относится к thisGrade.

...