所以我做了一個基本的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