尝试返回数组的最小值,最大值和平均值

时间:2018-02-06 16:34:14

标签: javascript arrays max average min

我在尝试生成数组的最小值,最大值和平均值时遇到了困难。我似乎能够毫无问题地返回最小值,但是我尝试一起生成这三个值,无论是单独还是在数组内部,都会在控制台中与'undefined'作为输出。

这是我正在运行的代码(在控制台中):

function findMinMaxAvg(arr){
  var min = arr[0]; // min
  var max = arr[0]; // max
  var sum = arr[0]; // sum

  for(var i = 1; i < arr.length; i++){
    if (arr[i] < min) {
      min = arr[i];
    }
    if (arr[i] > max) {
      max = arr[i];
    }
    sum = sum + arr[i];
  }
  return min;
  return max;
  return sum / arr.length;

  var avg = sum / arr.length;  // declaring avg variable for later arrnew variable
  var arrnew = [min, max, avg];  // output results into this new array
  return arrnew; // return all three values inside of an array
  console.log(arrnew);
}
findMinMaxAvg([1,5,10,-2]);

3 个答案:

答案 0 :(得分:2)

您不能在函数中连续使用多个返回语句。它将始终在第一个return min语句中退出函数。

function findMinMaxAvg(arr){
  var min = arr[0]; // min
  var max = arr[0]; // max
  var sum = arr[0]; // sum

  for(var i = 1; i < arr.length; i++){
    if (arr[i] < min) {
      min = arr[i];
    }
    if (arr[i] > max) {
      max = arr[i];
    }
    sum = sum + arr[i];
  }
  return [min, max, sum / arr.length]
}

答案 1 :(得分:1)

这似乎是你正在尝试的。

&#13;
&#13;
    var arr = [2, 3, 5, 6, 7,1, 4, 6, 5]
    var max = arr[0];
    var min = arr[0];
    var sum = arr[0]; 
    for (var i = 1; i < arr.length; i++) {
        if (arr[i] > max) {
            max = arr[i];
        }
        if (arr[i] < min) {
            min = arr[i];
        }
        sum = sum + arr[i];
    }
   console.log('max=' +max + 'min='  +min + 'avd=' + sum/arr.length); 
&#13;
&#13;
&#13;

答案 2 :(得分:1)

你在那里90%! 从函数返回后,其余代码都不会运行。 因此,以下语句应删除,您将获得预期返回的数组!

{{1}}