Javascript:使用for循环计算数组的平均值

时间:2014-01-03 14:00:55

标签: javascript arrays

与标题所示,我需要做的是使用for循环计算数组的平均值。平均而言,我的意思是(a+b+c+d+e)/5=average.

这就是我需要在文本中做的事情,因为我是javascript的新手,我不太清楚如何执行它。有什么想法吗?

此外,如果你认为这个问题不属于这里或者是愚蠢的,请指导我到我能找到这些信息的地方,我只是想在这里学习。

function test(arr) {


}

5 个答案:

答案 0 :(得分:5)

function average(items) {
  var sum = 0;
  var count = items.length;
  for (i=0; i<count; i++) {
    sum += items[i];
  }
  return sum/count;
}

或者,如果您希望average()可用作阵列上的方法:

Array.prototype.average = function() {
  var sum = 0;
  var count = this.length;
  for (i=0; i<count; i++) {
    sum += this[i];
  }
  return sum/count;
}

用法:

[1,2,3,4,5].average(); // 3

答案 1 :(得分:1)

这是一篇回复你答案的帖子。

Array Sum and Average

另请在Javascript中查看有关for循环的链接:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for_each...in

答案 2 :(得分:1)

只需迭代值,总结它们,然后返回sum的值除以条目数。

function test (arr) {
  for (var i=0,sum=0;i<arr.length;i++) {
    sum += arr[i];
  }
  return sum / i;
}

答案 3 :(得分:0)

这应该有帮助

var nCtrr = 0, nSum = 0, nAvg = 0;
var arNum = [1, 2, 3, 4, 5];
for ( nCtr in arNum ) {

    nSum += arNum[ nCtr ];
    nCtr += 1;

}
nAvg = nSum/arNum.length;
alert( nAvg );

JSFiddle

答案 4 :(得分:0)

建议,这里的答案都没有检查长度=== 0,你将来会在某种情况下除以零。我建议你总是检查数学边界条件。相关文章有一个回应(https://stackoverflow.com/a/18234568/987044)。

如果您想要安全,这是另一个例子。 http://jsfiddle.net/ledlogic/syn74/

var nothing = null;
var empty = [];
var items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; // 20 sider
function average(items) {
    if (!items) {
        return 0;
    }
    var sum = 0,
        count = 0;
    // for large arrays, faster to go down.
    for (var count = items.length, i = count - 1; i >= 0; i--) {
        sum += items[i];
    }
    return count ? sum / count : 0;
}

alert(nothing + ":" + average(nothing) + "\r" + empty + ":" + average(empty) + "\r" + items + ":" + average(items) + "\r");

math.js库,mean.js也会进行数组长度检查。