Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
求Javascript数组的和并除以其长度_Javascript - Fatal编程技术网

求Javascript数组的和并除以其长度

求Javascript数组的和并除以其长度,javascript,Javascript,我几乎不好意思问这个问题 我是一个初学者程序员,Javascript让我很困惑。在我的导师的帮助下,我成功地把这些东西拼凑起来,但有些简单的事情我做不好 我尝试搜索堆栈溢出来寻找一个可以回答我问题的线程,但我看到的所有线程都包含我还没有学会的代码,所以它们对我来说都是胡言乱语 我要做的是把一个数组的所有值相加,然后除以数组的长度,得到平均值。作业的描述是查找任意数量学生的平均成绩 我的两个问题是 我不知道如何得到数组中所有数值的和 出于某种原因,array.length返回的长度比数组的实际长度

我几乎不好意思问这个问题

我是一个初学者程序员,Javascript让我很困惑。在我的导师的帮助下,我成功地把这些东西拼凑起来,但有些简单的事情我做不好

我尝试搜索堆栈溢出来寻找一个可以回答我问题的线程,但我看到的所有线程都包含我还没有学会的代码,所以它们对我来说都是胡言乱语

我要做的是把一个数组的所有值相加,然后除以数组的长度,得到平均值。作业的描述是查找任意数量学生的平均成绩

我的两个问题是

  • 我不知道如何得到数组中所有数值的和
  • 出于某种原因,array.length返回的长度比数组的实际长度多一个,即使我添加了-1。(例如,如果我输入6个值,array.length将返回7。)
  • 我知道问题出在哪里,但我不知道我需要输入什么。这项任务明天就要交了,所以任何人的时间和努力都是值得感谢的

    这是我的剧本:

    <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>
    
    
    var allGrades=新数组();
    var g=0;
    var l=0;
    var s=0;
    var t=0;
    做{
    allGrades[g]=window.prompt(“请为每个窗口输入一个等级。输入等级后,输入“x”以查看您输入的等级平均值。”,“”)
    g++;
    }
    而(所有等级[g-1]!=“x”)
    对于(l=0;l=90):
    警告(“你的平均成绩是“+(t)+”+“这是A.”)
    打破
    情况(t>=80和&t<90):
    警告(“你的平均成绩是“+(t)+”+“这是B.”)
    打破
    情况(t>=70和&t<80):
    警告(“你的平均成绩是“+(t)+”+“这是C.”)
    打破
    情况(t>=60和&t<70):
    警告(“你的平均成绩是”+(t)+“+”这是D.))
    打破
    
    case(t
    =
    是比较运算符。您需要在此处使用赋值运算符(
    =
    ):

    和它附近的线

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

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

    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);
    
    var等级=[];
    做{
    var input=window.prompt(“请为每个窗口输入一个等级。输入等级后,输入“x”以查看您输入的等级平均值。”,“”);
    grades.push(parseFloat(输入));
    }while(输入!=“x”);
    var总和=0;
    对于(int i=0;i=90){
    等级=‘A’;
    }否则,如果(平均值>=80){
    等级=‘B’;
    }否则,如果(平均值>=70){
    等级=‘C’;
    }否则,如果(平均值>=60){
    等级='D';
    }否则{
    成绩=‘不及格成绩’;
    }
    警告('您的平均成绩为'+平均+'.+'这是'+成绩);
    
    两者都是比较,对于分配,它们应该是

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

    正确的缩进对于其他人的帮助非常重要。只使用了JSFIDLE的整洁特性:)你不应该因为问问题而感到尴尬。唯一糟糕的问题是没有被问到的问题。每个人都从某个地方开始,这是学习曲线的一部分。因此,一些最简单的问题为提问者赢得了一些金质徽章,所以冷静点:)我很抱歉缩进,我不确定如何正确格式化它。使用空格插入代码的方法对我来说有点陌生。@Jazzy663:只需突出显示它,然后按CTRL-K或按“代码”按钮。您只需粘贴代码,选择它,然后按编辑器上的“代码”按钮,您就不必为每行添加4个空格哇,我不相信这是问题所在。我觉得有点傻。谢谢,它现在可以工作了。
    t==s/g-1; 
        g==allGrades.length-1; //
    
    t=s/g-1; 
        g=allGrades.length-1;