[英]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.