我当时在做一些JavaScript练习,尽管我确实设法使它正确,但是我还是很困惑。
因此,这是一项练习,其中必须将标记列表的平均值与给定的值范围进行比较,以返回一个字符串,该字符串响应标记是否足够。我发现使用>运算符进行比较时,它返回未定义。即使也给出了上限,但仅上限(没有下边界值+>运算符)确实会返回字符串。我真的不明白为什么会这样。
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
}
请下次粘贴代码!
您不会为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!";
}