2012-02-16 33 views
0

所以,我有兩個數組:grade []和grade2 [],其中包含我從windows.prompt提供的元素。我想從等級中添加一個等級值,所以我可以計算「媒體」。但是我編寫的代碼只是將這兩個值連接起來,並不實際添加它們。我是初學者,我希望你能幫助我。謝謝!我怎樣才能將一個數組中的值添加到另一個javascript中的值?

function display_student() 
{ 
var n=window.prompt("Number of students: "+""); 
var name= new Array(n); 
var grade=new Array(n); 
var grade2=new Array(n); 
var y=0; 
for (y=0; y<n; y++) 
{ 
name[y]=window.prompt("Student name:",""); 
grade[y]=window.prompt("Grade 1: ","5"); 
grade2[y]=window.prompt("Grade 2: ","5") 

document.write("</br>"+"Student name: "+name[y]+"</br>"+"Grade 1: "+grade[y]+" </br>"+"Grade 2: "+grade2[y]+"</br>"); 
var media=(grade[y]+grade2[y])/2; 

document.write("Media: "+media+"</br>"); 
if(media<5) 
document.write("Failed"); 
else 
document.write("Promoted"); 
    } 
}  
+0

this line'grade2 [y] = window.prompt(「Grade 2:」,「5」)'缺少分號 – ManseUK 2012-02-16 14:49:45

+1

我很高興您將其標記爲家庭作業。 – 2012-02-16 14:52:44

回答

2

添加前使用parseInt函數。

var media=(parseInt(grade[y]) + parseInt(grade2[y]))/2; 
0

數組中的值是String型(as returned by the window.prompt function),你需要將它們轉換爲數字給他們加在一起:

function display_student() { 
    var n = window.prompt("Number of students: " + ""); 
    var name = new Array(n); 
    var grade = new Array(n); 
    var grade2 = new Array(n); 
    var y = 0; 
    for (y = 0; y < n; y++) { 
     name[y] = window.prompt("Student name:", ""); 
     grade[y] = window.prompt("Grade 1: ", "5"); 
     grade2[y] = window.prompt("Grade 2: ", "5"); // added semi-colon here too 

     document.write("</br>" + "Student name: " + name[y] + "</br>" + "Grade 1: " + grade[y] + " </br>" + "Grade 2: " + grade2[y] + "</br>"); 
     var media = (parseFloat(grade[y]) + parseFloat(grade2[y]))/2; 

     document.write("Media: " + media + "</br>"); 
     if (media < 5) { 
      document.write("Failed"); 
     } else { 
      document.write("Promoted"); 
     } 
    } 
} 

工作例如:http://jsfiddle.net/z5cUw/

0

使用請看:

var media=(parseInt(grade[y], 10)+parseInt(grade2[y], 10))/2; 

假設你的成績是整數。否則,使用parseFloat(在這種情況下,您將不需要第二個參數)。

+0

不錯,謝謝! – Dianna 2012-02-16 14:51:37

0

使用parseFloat:

var media=(parseFloat(grade[y])+parseFloat(grade2[y]))/2; 
0

這是一個間接的答案,因爲這被標記的功課。

因爲window.prompt默認返回一個字符串,所以您需要將此字符串轉換爲數字。有幾種方法可以做到這一點。

  • 您可以按照幾個人的建議使用parseInt()。返回一個整數值。
  • 建議您可以使用parseFloat()
  • 可以使用上的提示一個簡單的除法迫使它:window.prompt("Grade 1: ","5")/1;或媒體計算期間:var media = (grade[y]/1 + grade2[y]/1)/2;
  • 可以使用Number()函數:Number(window.prompt("Grade 1: ", "5"));

它是由你來決定這是適合您需求的方法。如果輸入的值不是數字會怎樣?研究這些方法中的每一個,以確定您的需求最佳套件。

相關問題