1

    
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)

Here is the link, q1.2

It only displays 4 all the time, I don't know which part went wrong.

georg
  • 211,518
  • 52
  • 313
  • 390

1 Answers1

1

You are assigning value with = instead of comparing with an operator == when checking the alphabetic grade.

letter[i] = "A"

Should be:

letter[i] == "A"

Also you have a type you refer in a couple of if conditionals to a wrong score which should be changed to letter.

Full code fixed:

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)
aviya.developer
  • 3,343
  • 2
  • 15
  • 41