JavaScript - 我如何将 var 添加到带有提示的数组中并使用按钮获取平均值

JavaScript - How would i add var into an array with prompts and get the average with a button

这是我的代码。我知道这是错误的,但我需要一些帮助来启动提示列表。我的目标是用一个按钮获得 4 个标记,然后你输入并将它放在一个数组中。然后对其进行平均,并显示一个警报。

<html>
  <head>
    <title>Quiz</title>
  </head>
  <body>
    Average your marks
    <button onclick="myFunction()">Start</button>
    <script type="text/javascrypt">
      var student = []

      var student[0] = prompt("Name:");
      var student[1] = prompt("mark=");
      var student[2] = prompt("mark=");
      var student[3] = prompt("mark=");
      var student[4] = prompt("mark=");
      var student[5] = student[1] + student[2] + student[3] + student[4] / 4;

      function myFunction() {
        if (confirm(student) == true)
      }
    </script>
  </body>
</html>

我真的认为你快到了:

将每 avArray 更改为 student。并且第一次去var student = []

编辑: 也写 function 而不是 fuction

编辑 2 最后:因为你使用 var 你定义了一个变量。所以只使用 varvar student = []

var student[0] 是错误的,因为已经定义了学生。所以使用 student[0] =

因为 prompt 总是 returns 您想要使用的字符串 Number 使其成为您可以用来计算的数字。

因此您的最终代码将如下所示:

var name = prompt("Name:");
var grades = [];
grades[0] = Number(prompt("mark="));
grades[1] = Number(prompt("mark="));
grades[2] = Number(prompt("mark="));
grades[3] = Number(prompt("mark="));
var average = (grades[0] + grades[1] + grades[2] + grades[3]) / 4;

function myFunction() {
  confirm(name + ": " + average)
}
Average your marks: 
<button onclick="myFunction()">Start</button>

您要确保添加的是 int 值,而不是 String 值 - 这是 prompt 的 return 结果。

试试这个:

// Forces the user to input an int by retrying until an int is input
function intPrompt(msg) {
    while (true) {
        var num = parseInt(prompt(msg));
        if (!isNaN(num)) return num;
    }
}

下面的代码将从用户那里读取 4 个分数并计算它们的平均值:

alert((intPrompt('mark 1') + intPrompt('mark 2') + intPrompt('mark 3') + intPrompt('mark 4')) / 4);

相当多的错误,以下是我目前发现的一些错误:

<script type="text/javascrypt">

正确拼写 javascript

var student[0] = prompt("Name:");

你只在第一次定义学生时使用var,从下次出现的学生中删除它。

  if (confirm(student) == true)

Student 是数组,不是字符串。您将需要以某种方式将其转换为字符串以用于确认 AFAIK。

 var student[5] = student[1] + student[2] + student[3] + student[4] / 4;

我刚刚测试了这条线,平均不能正常工作,你需要防止连接,也许适当的括号。

平均值的计算并不完美,您尝试将所有内容都放入数组中,即使它不属于数组。 检查示例:http://codepen.io/anon/pen/rWxMEP

<html>
<head>
<title>Quiz</title>
<body>
 Average your marks<button onclick=myFunction()>Start</button>
<script type="text/javascrypt">
let name;
let studentMarks = [];
const numOfMarks = 4;
let sumMark = 0;
let msg;
let myFunction = function() {  
    name = prompt("Name");
    if (name.length !== 0){
        for(i = 0; i < numOfMarks; i++){
            msg = "Enter mark (" + parseInt(parseInt(numOfMarks)-parseInt(i) )+" left)";
            studentMarks[i] = prompt(msg);
            sumMark += parseFloat(studentMarks[i]);
        }
        alert(name + "'s average mark is "+ sumMark/numOfMarks);
    }
}
</script>
</body>
</html>