如何在javascript中将数组中的值添加到另一个值?

时间:2012-02-16 14:45:01

标签: javascript

所以,我有两个数组:grade []和grade2 []包含我从windows.prompt提供的元素。我想从等级中添加一个来自等级2的值的值,这样我就可以计算出“媒体”。但是我写的代码只是将这两个值连接起来,实际上并没有添加它们。我是初学者,我希望你能帮助我。谢谢!

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");
  } 
}    

6 个答案:

答案 0 :(得分:2)

添加前使用parseInt功能。

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

答案 1 :(得分:1)

因为它们是字符串而没有数字 看看parseInt(string, radix)

答案 2 :(得分:0)

数组中的值类型为Stringas 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/

答案 3 :(得分:0)

使用:

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

假设你的成绩是整数。否则,请使用parseFloat(在这种情况下,您不需要第二个参数)。

答案 4 :(得分:0)

使用parseFloat:

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

答案 5 :(得分: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"));

由您决定哪种方法适合您的需要。如果输入的值不是数字怎么办?研究这些方法,确定您需要的最佳套件。