[试图弄清楚为什么我的代码块无法计算数组的平均值。希望能有新的眼光告诉我为什么它没有进行数学运算。我还可以补充一点吗?“ mark”是一个不包含任何整数的数组,数字存储在控制台中,而不是存储在它自己的数组中。我正在尝试使其通过用户输入起作用,并从控制台获取值。
function getTotal() {
let total = 0;
let count = 0;
let i = 0;
for (let i = 0; i < mark.length; i++) {
total += mark.length[i];
}
if (mark[i] !== undefined) {
//legit value//
count++;
total += mark[i];
}
let avg = total / count;
console.log(avg)
}
document.getElementById("result").innerHTML = " The Average is " + total;
document.getElementById("Average").addEventListener("click", getTotal);
求和数组中的数字,然后除以数组的长度。如果数组的长度为0
,则返回NaN
(或引发错误):
function getAverage(arr) {
if (!arr.length) return NaN; // handler empty array case
let total = 0;
for (let i = 0; i < arr.length; i++) {
total += arr[i];
}
return total / arr.length;
}
console.log(getAverage([2, 2, 2]));
console.log(getAverage([10, 20, 33]));
console.log(getAverage([]));
当您想在代码中使用该方法时,创建一个事件侦听器:
document.getElementById("Average").addEventListener("click", function() {
const average = getAverage(mark);
document.getElementById("result").innerHTML = " The Average is " + average ;
});
这是一个有效的代码段
function getTotal(mark) {
let total = 0;
let count = 0;
for (let i = 0; i < mark.length; i++) {
total += mark[i];
count++;
}
let avg = total / count;
console.log(avg)
document.getElementById("result").innerHTML = " The Average is " + avg;
}
document.getElementById("Average").addEventListener("click", () => {
getTotal([90, 96, 100, 98])
});
<div id="result"></div>
<button type="button" id="Average">Get Total</button>
mark.length [i]可能应该是mark [i],而且if语句在您的for循环之外,因此它只检查最后一个索引。
通常,当您使用“ get”方法时,应该返回一些内容。同样也不确定标记来自何处,因此我在下面制作了此片段以帮助您解决问题。
也“ document.getElementById(” result“)。innerHTML =”平均值是“ +总数;”应该在函数内部。
let mark = [1,2,3,4,5]
function getTotal() {
let items = mark.filter(n => n !== undefined)
let total = items.reduce((sum, n) => sum + n, 0)
let average = total / items.length
document.getElementById("result").innerHTML = " The Average is " + average;
}
document.getElementById("Average").addEventListener("click", getTotal);
<buttton id="Average">Get Average</button>
<div id="result"></div>