【问题标题】:How to get the average value of array in JavaScript如何在 JavaScript 中获取数组的平均值
【发布时间】:2020-02-04 20:30:32
【问题描述】:

我正在编写一个代码,可让您在提示窗口中输入 10 个随机数。这些数字存储在一个名为tal 的数组中。我已经弄清楚如何获得最高和最低值,但我无法获得平均值。有人可以帮助我解决问题或让我走上正确的道路吗?

这是我的代码:

let tal = [];
for (i = 0; i < 10; i++) {
  tal[i] = prompt('Add a number: ', '');
  tal.sort(function(a, b) {
    return a - b
  });
}
document.body.innerHTML += Math.max.apply(null, tal) + '<br>';
document.body.innerHTML += Math.min.apply(null, tal) + '<br>';

【问题讨论】:

  • 为什么要对数组进行排序?
  • 这能回答你的问题吗? How to find the sum of an array of numbers 使用它,然后除以 array.length(数学中的基本平均计算)
  • 您可以这样计算平均值:var average = eval(numbers.map(Number).join('+'))/numbers.length 其中numbers 是包含您的数字的变量

标签: javascript arrays for-loop


【解决方案1】:

我认为,如果您先使用 reduce() 对数字求和,然后将该数字除以长度,您将得到最后数字的平均值。

来自Array.prototype.reduce()的文档:

reduce() 方法对数组的每个元素执行(您提供的)reducer 函数,从而产生单个输出值。

const numbers = [3,4,5,2,4,6,78,53,2,1,2];
const sum = numbers.reduce((a,c) => a + c, 0);
const avg = sum / numbers.length;

console.log(avg);

希望对你有帮助!

【讨论】:

  • 这是最简单的解决方案,只要您有可用的 reduce(这意味着您不是为 IE 编写的),这是正确的。否则,必须使用使用 for 循环的第一个答案。
【解决方案2】:

你可以这样做:

var average = getAverage(tal);

function getAverage(arr) {
  var sum = 0;
  for(var i = 0; i < arr.length; i++) {
    sum += Number(arr[i]);
  }

  return sum / arr.length;
}

【讨论】:

    猜你喜欢
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    相关资源
    最近更新 更多