首页 > 解决方案 > javascript for循环中的求和值

问题描述

如何存储我的所有 numberGrades 值,以便它们可以包含在我的计算中,我是新手,所以如果有人可以更新我的代码,那将是完美的?

//user input number of grades to be entered
numGrades = prompt("Enter number of grades to be entered: ", ES);

//number of grades to be entered LOOP 
for (index = 1; index <= numGrades; index++) {
  numberGrades = prompt("Enter Grade " + index, ES);
}

//Calculation
gradePointAverage = numberGrades / numGrades;

document.write("Your GPA is " + gradePointAverage + PA);

标签: javascriptfor-loop

解决方案


prompt方法返回一个字符串,因此您必须使用parseIntor将其转换为 int 或 float parseFloat

你所做的只是得到你成绩的最后一个值。你想要的是把它们加在一起然后除以等级数

有2个解决方案:

  • 将输入存储到数组中
  • 每次用户输入值时将它们加在一起

// First solution
// Create an array and append each value
numberGrades = [];
for (index = 1; index <= numGrades; index++) {
  valuePrompt = prompt("Enter Grade " + index, ES);
  numberGrades.append(parseFloat(valuePrompt));
}
//Calculation
sumOfGrades = numberGrades.reduce((a, b) => a + b, 0)
gradePointAverage = sumOfGrades / numGrades;

// Second solution
// Add every prompt by the user
numberGrades = 0;
for (index = 1; index <= numGrades; index++) {
  valuePrompt = prompt("Enter Grade " + index, ES);
  numberGrades += parseFloat(valuePrompt));
}
//Calculation
gradePointAverage = numberGrades / numGrades;


推荐阅读