javascript - 创建一个函数 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)
它一直只显示4,我不知道哪个部分出错了。
解决方案
在检查字母等级时,您正在分配值=
而不是与运算符进行比较。==
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)
推荐阅读
- javascript - 在重复嵌套的数组中查找对象和父对象
- java - NoUniqueBeanDefinitionException 当父类和子类是组件时
- calculated-columns - Spotfire 两个值之间的计算列
- mysql - SQL - 如何根据其他两个选择/删除具有最大值的行
- mysql - FULLTEX在Mysql中不同表的两列上搜索
- javascript - 更改页面时丢失变量数据
- python - Python argparse 默认字符串值
- protractor - 将 headless 设置为 CLI arg
- android - AAPT2 错误:检查日志以获取详细信息?
- ms-access - 检索表单活动控件上列表框的值