首页 > 解决方案 > 创建一个函数 toGradePoints(),它将字母等级数组作为输入并返回相应的等级点数组

问题描述

    
function toGradePoints(letter) {
  //var score = '';
  var grade = [];

  for (var i = 0; i < letter.length; i++) 
  {
    //result = '';
    if (letter[i] = "A") {
      grade[i] = 4.0;
    } else if (letter[i] = "A-") {
      grade[i] = 3.7;
    } else if (letter[i] = "B+") {
      grade[i] = 3.3;
    } else if (letter[i] = "B") {
      grade[i] = 3.0;
    } else if (letter[i] = "B-") {
      grade[i] = 2.7 ;
    } else if (letter[i] = "C+") {
      grade[i] = 2.4;
    } else if (score[i] = "C") {
      grade[i] = 2.0;
    } else if (score[i] = "C-") {
      grade[i] = 1.7;
    } else {
      grade[i] = 0;
    }
   // result.push(score);
  }
 return grade;
     
}
  
  var y=[]
  y=["B","B+","C-","D"];

  var m=toGradePoints(y);

console.log(m)

这是链接,q1.2

它一直只显示4,我不知道哪个部分出错了。

标签: javascript

解决方案


在检查字母等级时,您正在分配值=而不是与运算符进行比较。==

letter[i] = "A"

应该:

letter[i] == "A"

此外,您还有一个类型,您在几个 if 条件句中引用了一个错误score,应该将其更改为letter.

完整代码已修复:

function toGradePoints(letter) {
  //var score = '';
  var grade = [];

  for (var i = 0; i < letter.length; i++) 
  {
    //result = '';
    if (letter[i] == "A") {
      grade[i] = 4.0;
    } else if (letter[i] == "A-") {
      grade[i] = 3.7;
    } else if (letter[i] == "B+") {
      grade[i] = 3.3;
    } else if (letter[i] == "B") {
      grade[i] = 3.0;
    } else if (letter[i] == "B-") {
      grade[i] = 2.7 ;
    } else if (letter[i] == "C+") {
      grade[i] = 2.4;
    } else if (letter[i] == "C") {
      grade[i] = 2.0;
    } else if (letter[i] == "C-") {
      grade[i] = 1.7;
    } else {
      grade[i] = 0;
    }
   // result.push(score);
  }
 return grade;

}

  var y=[]
  y=["B","B+","C-","D"];

  var m=toGradePoints(y);

console.log(m)

推荐阅读