Итак, я сделал базовый калькулятор GPA, и он отлично работает. Мой вопрос, хотя есть, есть ли более простой/чистый способ сделать это, поэтому мне не нужно перечислять значения нижнего и верхнего регистров в моем объекте? Потому что я хочу сделать это так, независимо от того, будет ли это нижняя или верхняя буква, которую вводит пользователь, это все равно означает то же самое. Я попытался выполнить функцию .toUpperCase(), но это не сработало, или я просто сделал это неправильно, и я как бы зациклился на том, как это сделать, или если это возможно, и оставить его таким, как это хорошо. Благодарю. Вот моя цель.Лучший способ сделать буквы нижнего и верхнего регистров имеют одинаковое значение в объекте, отличном от перечисления их всех?
var gradeValues = {
"A+": 4.33,
"a+": 4.33,
"A": 4.0,
"a": 4.0,
"A-": 3.67,
"a-": 3.67,
"B+": 3.33,
"b+": 3.33,
"B": 3.0,
"b": 3.0,
"B-": 2.67,
"b-": 2.67,
"C+": 2.33,
"c+": 2.33,
"C": 2.0,
"c": 2.0,
"C-": 1.67,
"c-": 1.67,
"D+": 1.33,
"d+": 1.33,
"D": 1.0,
"d": 1.0,
"D-": 0.67,
"d-": 0.67,
"F": 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;
var inputArray = [input1, input2, input3, input4];
document.getElementById("result").innerHTML = ((gradeValues[input1] + gradeValues[input2] + gradeValues[input3] + gradeValues[input4])/4) + " is your GPA";
for(var i = 0; i < inputArray.length; i++) {
if(inputArray[i] === "") {
alert("You didn't enter a letter into all of the boxes.");
document.getElementById("result").innerHTML = "";
return false;
}
else if(isNaN(inputArray[i]) === false) {
alert("You have to enter a letter, not a number!");
document.getElementById("result").innerHTML = "";
return false;
}
};
Это сработало отлично, теперь я чувствую себя глупо. Ценить это. – user6901580