如果语句语法错误

问题描述 投票:0回答:2

我当时在做一些JavaScript练习,尽管我确实设法使它正确,但是我还是很困惑。

因此,这是一项练习,其中必须将标记列表的平均值与给定的值范围进行比较,以返回一个字符串,该字符串响应标记是否足够。我发现使用>运算符进行比较时,它返回未定义。即使也给出了上限,但仅上限(没有下边界值+>运算符)确实会返回字符串。我真的不明白为什么会这样。

感谢您的帮助enter image description here

enter image description here

enter image description here

javascript arrays operator-keyword
2个回答
0
投票
const marks = [80,80,50]
function calculateGrade(marks){
    var markstotal = 0
    marks.forEach(mark => markstotal+=mark);

    console.log(markstotal)
    let average = markstotal/marks.length
    if (average <= 59)
        return "F"
    else if (average > 59 && average <70)
        return "meh"
    else
        return "Fuckyeahhmate";
}
console.log(calculateGrade(marks))

我建议改用.forEach方法。如果您想遍历循环也可以]

var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i++) {
    console.log(myStringArray[i]);
    //Do something
}

请下次粘贴代码!


0
投票

您不会为average的所有可能值返回任何值。您的示例中的值为70。这将在代码中所有可用的if条件下得出false,并在不返回任何内容的情况下到达函数末尾,因此默认返回值为undefined

请确保您的函数始终返回某些内容。让我们试试吧。

const marks = [80,80, 50]

console.log(calculateGrade(marks));

function calculateGrade(marks) {
    let markstotal = 0;

    for (let mark of marks)
        markstotal += mark;
    let average = markstotal / marks.length;

    if (average < 60)
        return "F";
    else if (average < 70)
        return "getting hot";
    else if (average < 90)
        return "oh yeah mate";
    else 
        return "you are a god!";
}
    
© www.soinside.com 2019 - 2024. All rights reserved.