JavaScript:数字等级到字母等级

标签 javascript arrays loops conditional-statements

1. 创建一个 toLetterGrade 函数,该函数采用百分比数组并返回相应成绩字母的数组。例如:

toLetterGrade([90,80,55,85]);//返回 ["A","A-","C","A"]

2. 创建一个 toGradePoints 函数,它接受一个字母等级数组并返回一个相应的成绩点数组。例如:

toGradePoints(["A","A-","C","A"]);//返回 [4.0,3.7,2.0,4.0]

3. 创建一个 GPA 函数,该函数采用百分比数组并返回相应的平均绩点。

我正在尝试做数字 1,这是我目前的代码,但它只给出了数组中最后一个数字的字母等级。我做错了什么?

var arr

function toLetterGrade(arr) {
    for (i = 0; i < arr.length; i++) {
        if (arr[i] >= 85) {
            textG = "A";
        } else if (arr[i] >= 80) {
            textG = "A-";
        } else if (arr[i] >= 75) {
            textG = "B+";
        } else if (arr[i] >= 70) {
            textG = "B";
        } else if (arr[i] >= 65) {
            textG = "B-";
        } else if (arr[i] >= 60) {
            textG = "C+";
        } else if (arr[i] >= 55) {
            textG = "C";
        } else if (arr[i] >= 50) {
            textG = "D";
        } else {
            textG = "F";
        }
    }
    return textG;
}

document.write(toLetterGrade([90, 80, 70]))

输出为B。

最佳答案

你在循环的每个循环中都覆盖了你的变量,这就是为什么你只得到一个 - 最后一个成绩。

我建议你使用一个空数组变量来存储结果。

在每个循环中,您都将为 textG 变量分配新的成绩,然后将其推送到 result 数组中。 textG 变量在每次循环 textG = '' 时都会重置,因此没有重复/覆盖结果的风险。

for 循环的所有循环之后,result 数组被返回。

function toLetterGrade(arr) {
  var textG = '';
  var result = [];
  for (i = 0; i < arr.length; i++) {
    textG = '';
    if (arr[i] >= 85) {
      textG = "A";
    } else if (arr[i] >= 80) {
      textG = "A-";
    } else if (arr[i] >= 75) {
      textG = "B+";
    } else if (arr[i] >= 70) {
      textG = "B";
    } else if (arr[i] >= 65) {
      textG = "B-";
    } else if (arr[i] >= 60) {
      textG = "C+";
    } else if (arr[i] >= 55) {
      textG = "C";
    } else if (arr[i] >= 50) {
      textG = "D";
    } else {
      textG = "F";
    }
    result.push(textG);
  }
  return result;
}

document.write(toLetterGrade([90, 80, 70]))

关于JavaScript:数字等级到字母等级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42492644/

相关文章:

java - 如何在Android中获取HashMap在java上循环的内容?

javascript - 如何在提交之前使用 javascript 验证 jsp 中的表单

python - 有效旋转 3D 阵列中的 block /窗口(矢量化扩散?)

php - 通过没有循环的数组从MySQL获取值

c++ - 字符数组问题C++

python - 数组更改后立即跳出循环

objective-c - 将一个数组中的所有元素与另一个数组进行比较

javascript - 如何通过点击随机改变按钮的背景颜色?

javascript - 使用 JavaScript Papa Parse 将 CSV 文件加载到静态 Python Bokeh Web 应用程序中

Javascript - 原始类型与引用类型