试图创建一个找到无限平均值的函数

时间:2014-02-11 19:56:34

标签: javascript

以下是我必须要开始的内容,我正在学习javascript,所以请尽量简化您的回复。我知道如果你需要更加详细,请这样做。说明是:

      /*
      create a function named 'avgNumbers'
       - accept 1 parameter into the function that will be an array of unlimited numbers
       - find the average of all the numbers
       - return the average from the function
       - console.log the answer outside of the function
     */

       //Code start here

       console.log("1. avg of an array of numbers");
       var avgNumbers = function(arr){

       }

      console.log('avg number = ', avgNumbers([1,2,3,4,5]));

5 个答案:

答案 0 :(得分:3)

我不确定你想要多少帮助。如果我们只是给你答案,你就不会学到任何东西,所以我会给你一些想法,但没有答案:

要计算n个数字的平均值,您可以将它们全部加起来除以n。例如,3个数字117的平均值为:(1 + 1 + 7)/3 = 3

你想对你的数组做同样的事情,但是n = array.length;

因此,您应该使用loop来计算总和。然后在你的循环除以array.length后返回结果。

答案 1 :(得分:2)

您可以使用reduce对值进行求和。

  

reduce()方法对累加器和每个应用函数   数组的值(从左到右)必须将其减少为单个   值

然后将总和除以数组中元素的数量:

var avgNumbers = function(arr){
  return arr.reduce(function(a, b){ return a + b; }, 0) / arr.length;
}

http://jsfiddle.net/8v6Jg/

答案 2 :(得分:1)

FIDDLE

只需循环所有元素并添加它们,然后除以元素的数量:

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

答案 3 :(得分:1)

试试这个:

console.log("1. avg of an array of numbers");
   var avgNumbers = function(arr){
        var sum = 0;
        for(var i =0;i<arr.length;i++) {
            sum+=arr[i];
        }
        return sum/arr.length;
   }

  console.log('avg number = ', avgNumbers([1,2,3,4,5]));

答案 4 :(得分:0)

您可以使用arguments,它是一个类似于数组的对象,对应于传递给函数的参数。

var avg = function () {
    var sum =0;
    for (var x = 0; x < arguments.length; x++) {
        sum = sum + arguments[x]; //or Sum += scores[x];
    }

    return sum / arguments.length;
}
alert(avg(1, 2, 2))

DEMO