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

Posted

技术标签:

【中文标题】尝试返回数组的最小值、最大值和平均值【英文标题】:Trying to return min, max, and average values of an array 【发布时间】:2018-07-16 19:03:30 【问题描述】:

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

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

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]);

【问题讨论】:

看来您需要更多地了解return 关键字的作用。 return min; 结束您的功能 - 之后的所有内容都将被忽略。 【参考方案1】:

一个函数中不能有多个连续的 return 语句。它总是会在第一个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]

【讨论】:

就是这样。我以前不明白这个概念。谢谢你,现在我知道了。难怪。 然后您可以将结果解构为var [min, max, avg] = findMinMaxAvg([1,2,3]);【参考方案2】:

这似乎是你正在尝试的。

    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); 

【讨论】:

【参考方案3】:

您已经完成了 90%! 从函数返回后,其余代码都不会运行。 所以下面的语句应该被删除,你会得到你期望返回的数组!

  return min;
  return max;
  return sum / arr.length;

【讨论】:

谢谢。我以前不明白这个概念。现在可以了。

以上是关于尝试返回数组的最小值、最大值和平均值的主要内容,如果未能解决你的问题,请参考以下文章

用java求一组数中最大值与次大值并返回,T﹏T

有没有办法读取 4 个不同的数组以在 C 的返回函数中生成最小值和最大值

查找整数数组的平均值

Java泛型,返回数组最大值最小值

取最大值(最小值)简介代码

最大/最小方法返回任何数据或错误数字