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