簡體   English   中英

試圖找到這個數組的最小值、最大值和平均值

[英]Trying to find the min, max and avg of this array

function minMaxAvgArray(arr){
  var min = arr[0];
  var largest = arr[0];
  var sum = arr[0];
  
  for (var i=0;i<arr.length; i++){
    if (arr[i]<min){
    min=arr[0];
    }
    if (arr[i]>largest){
      largest=arr[0];
    }
    
    sum += arr[i];
      
    }
  return [min, largest, sum/=arr.length];
}
y = minMaxAvgArray([-2,3,4,5]);
console.log(y);

我試圖找到給定數組的最小值、最大值和平均值,每次運行此代碼時,output 總是“(-2,-2 2)有人可以向我解釋嗎?

像這樣試試。

 function minMaxAvgArray(arr){ var min = arr[0]; var largest = arr[0]; var sum = 0; for (var i=0;i<arr.length; i++){ if (arr[i]<min){ min=arr[i]; } if (arr[i]>largest){ largest=arr[i]; } sum += arr[i]; } return [min, largest, sum/=arr.length]; } y = minMaxAvgArray([-2,3,4,5]); console.log(y);

我會嘗試使用分離的函數來簡化您的代碼,例如:

 const data = [-2, 3, 4, 5]; const sum = (d) => d.reduce((a, b) => a + b, 0); const avg = (d) => (sum(d) / d.length) || 0; const max = (d) => Math.max(...d.map(v => v)); const min = (d) => Math.min(...d.map(v => v)); const result = [min(data), max(data), avg(data)]; console.log(result);

您需要將一些索引更改為1而不是零,並從索引一開始循環,因為您從索引零獲取值作為起始值。

 function minMaxAvgArray(arr) { var min = arr[0]; var largest = arr[0]; var sum = arr[0]; for (var i = 1; i < arr.length; i++) { // iterate from 1 bc 0 is start value if (arr[i] < min) min = arr[i]; // assign index i if (arr[i] > largest) largest = arr[i]; // assign index i sum += arr[i]; } return [min, largest, sum /= arr.length]; } const y = minMaxAvgArray([-2, 3, 4, 5]); // declare variable console.log(y);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM