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
你定义了一个变量。所以只使用 var
和 var 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>
这是我的代码。我知道这是错误的,但我需要一些帮助来启动提示列表。我的目标是用一个按钮获得 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
你定义了一个变量。所以只使用 var
和 var 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>