JavaScript-试图弄清为什么我的平均金额不起作用?

问题描述 投票:0回答:3

[试图弄清楚为什么我的代码块无法计算数组的平均值。希望能有新的眼光告诉我为什么它没有进行数学运算。我还可以补充一点吗?“ 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);
javascript arrays average
3个回答
0
投票

求和数组中的数字,然后除以数组的长度。如果数组的长度为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 ;
});

0
投票

这是一个有效的代码段

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>

0
投票

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>
© www.soinside.com 2019 - 2024. All rights reserved.