gpt4 book ai didi

JavaScript:push 方法来平均数组

转载 作者:行者123 更新时间:2023-12-01 02:47:03 27 4
gpt4 key购买 nike

我试图让 userInput 将数据推送到数组中,但是,我不确定我在这里做错了什么。当我运行该程序时,它返回答案是 NaN。我调用 addtoList 函数是错误的还是我的逻辑在某个地方错误?

<!DOCTYPE HTML>
<html>
<title>Grade Average</title>
<head>
<script>

var grades = ["0"];
var total = 0;

function addtoList()
{
var userInput = parseInt(txtBox1);
grades.push(userInput);
}

function getAverage()
{
for (var i = 0; i < grades.length - 1; i++)
{
total += total + grades;
}
if (grades.length > 0)
{
alert("Average is " + (total / grades.length));
}
}

</script>
</head>
<body>
<input type="text"
id="txtBox1">
<input type="button"
id="Sumbit"
value="Add to List"
onclick="addtoList()">
<input type="button"
id="Calculate"
value="Calculate"
onclick="getAverage()">

</body>
</html>

最佳答案

  • txtBox1 应定义为变量。
  • 成绩起始值 "0"是一个字符串,您不能对字符串进行加/减/乘/除操作,因为它没有数值。而不是:"0"数值没有引号:0 - 但是在您的代码中,由于您正在计算平均值,因此可以将其留空,除非您希望 0 作为第一个值。
  • 您无法通过引用输入框的 id 来获取其值,您需要使用 document.querySelector(id) 获取该元素然后使用value指向它的值方法
  • 您的total每次重新计算值时都应重新声明该值。这意味着它应该在计算总数的函数内声明。
  • 在您的for中循环,您不需要将其运行到 grades.length -1因为您使用的是 <运算符你可以简单地说 grades.length 。同样在 for 循环中你不能简单地说 Grades当尝试添加数字时,因为它不是数字,而是 array 。数字/值位于数组内部。您可以通过引用 index 来获取其值。您设置为 i 的值多变的。在代码中,这看起来像 grades[i] .
  • 正如评论中指出的那样,总数可以通过 total += grades[i] 来计算不是total += total + grades[i]它将总计添加到成绩索引值中。

var grades = [];   
var txtBox1 = document.querySelector("#txtBox1");
function addtoList()
{
var userInput = parseInt(txtBox1.value);
grades.push(userInput);

}

function getAverage()
{
var total = 0;
for (let i = 0; i < grades.length; i++)
{
total += grades[i];
}
console.log(total);
if (grades.length > 0)
{
alert("Average is " + (total / grades.length));
}
}
<input type="text"
id="txtBox1">
<input type="button"
id="Sumbit"
value="Add to List"
onclick="addtoList()">
<input type="button"
id="Calculate"
value="Calculate"
onclick="getAverage()">

关于JavaScript:push 方法来平均数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47185353/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com