找到Javascript数组的总和并除以其长度

时间:2013-04-05 04:39:32

标签: javascript

我很尴尬地问这个。

我是初学程序员,Javascript对我来说很困惑。在我的导师的帮助下,我设法将这些内容整合在一起,但有一些简单的事情我无法做对。

我尝试使用Stack Overflow搜索一个可以回答我的问题的帖子,但是我看到的所有这些都包含了我还没有学到的代码,所以他们对我来说都是胡言乱语。

我要做的是添加一个数组的所有值,并将总和除以数组的长度,ergo,找到平均值。作业的描述是找到任意数量的学生成绩的平均值。

我的两个问题是

  1. 我无法弄清楚如何获取数组中所有数值的总和,
  2. 由于某种原因,即使我添加-1,array.length也会返回比Array的实际长度多一个的值。 (例如,如果我输入6个值,则array.length将返回7.)
  3. 我知道问题在哪里,但我无法弄清楚我需要输入什么。这项任务明天到期,所以任何人都有时间和精力。

    这是我的剧本:

    <script type="text/javascript">
        var allGrades = new Array();
        var g = 0;
        var l = 0;
        var s = 0;
        var t = 0;
        do {
            allGrades[g] = window.prompt("Please enter one grade for each window. After you enter a grade, enter an 'x' to see the average of the grades you entered.", "")
            g++;
        }
         while (allGrades[g - 1] != "x")
         for (l = 0; l < allGrades.length - 1; l++) {
            s += allGrades[l] // Where I think the problem is
        }
        t == s / g - 1;
        g == allGrades.length - 1; //
        window.alert(g)
         switch (t) {
            case (t >= 90):
                window.alert("Your average grade is " + (t) + ". " + "This is an A.")
                break;
            case (t >= 80 && t < 90):
                window.alert("Your average grade is " + (t) + ". " + "This is a B.")
                break;
            case (t >= 70 && t < 80):
                window.alert("Your average grade is " + (t) + ". " + "This is a C.")
                break;
            case (t >= 60 && t < 70):
                window.alert("Your average grade is " + (t) + ". " + "This is a D.")
                break;
            case (t <= 60):
                window.alert("Your average grade is " + (t) + ". " + "This is a failing grade.")
                break;
        }
    </script>
    

    如果我问的话似乎很愚蠢,我很抱歉。我只用了大约两个月的网络编程,所以我真的可以使用一些帮助!

    凯尔

2 个答案:

答案 0 :(得分:1)

==是比较运算符。您需要在此处使用赋值运算符(=):

t==s/g-1; 

靠近它的线条。

此外,为了您自己,请不要使用单字母变量名称,除非您有充分的理由这样做。

以下是编写脚本的更简洁方法:

var grades = [];

do {
    var input = window.prompt("Please enter one grade for each window. After you enter a grade, enter an 'x' to see the average of the grades you entered.", "");

    grades.push(parseFloat(input));
} while (input != 'x');

var sum = 0;

for (int i = 0; i < grades.length; i++) {
    sum += grades[l];
}

var average = (sum / grades.length) * 100;
var grade;

if (average >= 90) {
    grade = 'A';
} else if (average >= 80) {
    grade = 'B';
} else if (average >= 70) {
    grade = 'C';
} else if (average >= 60) {
    grade = 'D';
} else {
    grade = 'failing grade';
}

alert('Your average grade is ' + average + '. ' + 'This is a ' + grade);

答案 1 :(得分:0)

t==s/g-1; 
    g==allGrades.length-1; //

两个比较,对于作业,它们应该是

t=s/g-1; 
    g=allGrades.length-1;