Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GPA计算器,如何将字母输入转换成数字_Javascript_Html_Css_Forms_Letters - Fatal编程技术网

Javascript GPA计算器,如何将字母输入转换成数字

Javascript GPA计算器,如何将字母输入转换成数字,javascript,html,css,forms,letters,Javascript,Html,Css,Forms,Letters,我想做一个简单的GPA计算器。有4种形式,我试图让用户输入4个字母(a、B、C、D或F),并让每个数字代表一个值(a=4.0、B=3.0等),基本上只得到它们的平均值。现在,我只是让它这样,如果用户输入数字,它的工作,但现在我想改变它,让用户输入字母等级,并获得相同的gpa号码。我不知道怎么做。请帮忙,谢谢 (这是我的html) 基本思想是创建字母和数字之间的映射 最简单的方法是使用一系列if语句 var input=document.querySelector('input'); addEv

我想做一个简单的GPA计算器。有4种形式,我试图让用户输入4个字母(a、B、C、D或F),并让每个数字代表一个值(a=4.0、B=3.0等),基本上只得到它们的平均值。现在,我只是让它这样,如果用户输入数字,它的工作,但现在我想改变它,让用户输入字母等级,并获得相同的gpa号码。我不知道怎么做。请帮忙,谢谢

(这是我的html)


基本思想是创建字母和数字之间的映射

最简单的方法是使用一系列
if
语句

var input=document.querySelector('input');
addEventListener('input',function(){
var inputValue=input.value;
如果(inputValue==='A'){
输入值=4.0;
}else if(inputValue=='B'){
输入值=3.0;
}else if(inputValue=='C'){
输入值=2.0;
}else if(inputValue=='D'){
输入值=1.0;
}否则{
输入值=0.0;
}
console.log(输入值);
});

1:
基本思想是创建字母和数字之间的映射

最简单的方法是使用一系列
if
语句

var input=document.querySelector('input');
addEventListener('input',function(){
var inputValue=input.value;
如果(inputValue==='A'){
输入值=4.0;
}else if(inputValue=='B'){
输入值=3.0;
}else if(inputValue=='C'){
输入值=2.0;
}else if(inputValue=='D'){
输入值=1.0;
}否则{
输入值=0.0;
}
console.log(输入值);
});

1:
我将创建另一个Javascript函数,该函数接受输入并计算它,然后您可以从该函数输出

在函数内部,您可以将字母更改为数字

JavaScript

const calculateGrade = () => {
  const grades = [inputOne, inputTwo, inputThree, inputFour]
  let sum = 0
  for (let i = 0; i < grades.length; i++) {
    switch (grades[i]) {
      case "A":
        sum += 4.0
      case "B":
        sum += 3.0
      case "C":
        sum += 2.0
      case "D":
        sum += 1.0
    }
  }
  return (sum / 4)
}
const calculateGrade=()=>{
常数等级=[inputOne、InputWO、InputHREE、inputFour]
设和=0
for(设i=0;i
我将创建另一个Javascript函数,该函数接受输入并计算它,然后您可以从该函数输出

在函数内部,您可以将字母更改为数字

JavaScript

const calculateGrade = () => {
  const grades = [inputOne, inputTwo, inputThree, inputFour]
  let sum = 0
  for (let i = 0; i < grades.length; i++) {
    switch (grades[i]) {
      case "A":
        sum += 4.0
      case "B":
        sum += 3.0
      case "C":
        sum += 2.0
      case "D":
        sum += 1.0
    }
  }
  return (sum / 4)
}
const calculateGrade=()=>{
常数等级=[inputOne、InputWO、InputHREE、inputFour]
设和=0
for(设i=0;i
还有一个JavaScript映射,可以为您处理所有关联

以及检索:

var grade = document.getElementById("myGrade");
var gradeVal = vals.get(grade);

当然,您可以在一个循环中进行检索,获取用户输入的所有分数的值并计算平均值。这只是一个使用映射的简单示例。

还有一个JavaScript映射,可以为您处理所有关联

以及检索:

var grade = document.getElementById("myGrade");
var gradeVal = vals.get(grade);

当然,您可以在一个循环中进行检索,获取用户输入的所有分数的值并计算平均值。这只是一个使用地图的简单例子。

我阅读了所有答案,所有答案都给了我不同的想法,但最后,我基本上遵循了Mike C.的做法,但方式并不完全相同。这是我最后得到的,效果非常好

var gradeValues = {
    "A": 4.0,
    "B": 3.0,
    "C": 2.0,
    "D": 1.0,
    "F": 0
};
var getGrade = function() {
    input1 = document.form.input1.value;
    input2 = document.form.input2.value;
    input3 = document.form.input3.value;
    input4 = document.form.input4.value;
    document.getElementById("result").innerHTML = ((gradeValues[input1] + gradeValues[input2] + gradeValues[input3] + gradeValues[input4]) / 4) + " is your GPA";
};

我读了所有的答案,所有的答案都给了我不同的想法,但最后,我主要遵循了迈克·C.的做法,但方式并不完全相同。这是我最后得到的,效果非常好

var gradeValues = {
    "A": 4.0,
    "B": 3.0,
    "C": 2.0,
    "D": 1.0,
    "F": 0
};
var getGrade = function() {
    input1 = document.form.input1.value;
    input2 = document.form.input2.value;
    input3 = document.form.input3.value;
    input4 = document.form.input4.value;
    document.getElementById("result").innerHTML = ((gradeValues[input1] + gradeValues[input2] + gradeValues[input3] + gradeValues[input4]) / 4) + " is your GPA";
};

如何创建一个内置开关/外壳的函数,将每个字母映射为一个数值?你以前听说过switch语句吗?我听说过它们只是不熟悉使用,因为我还是个初学者。我会更深入地研究它们,谢谢。创建一个内置开关/外壳的函数,将每个字母映射为一个数值,怎么样?你以前听说过switch语句吗?我听说过它们只是不熟悉使用,因为我还是个初学者。我会更深入地研究它们。谢谢。如果你必须支持旧的浏览器版本,你可以使用旧的时尚JavaScript对象。如果你必须支持旧的浏览器版本,你可以使用旧的时尚JavaScript对象。我参与了你在上一个代码中编写的部分内容,并将其实现到我的代码中,现在它工作得非常好!我参与了您在上一个代码中编写的部分内容,并将其实现到我的代码中,现在它工作得非常好!