[英]Javascript Max Min Avg
I'm looking for the Max, Min, Avg to this code with an expected output of [10,-2,3.5]
我正在寻找此代码的最大,最小,平均,其预期输出为
[10,-2,3.5]
function MaxMinAvg (arr){
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];
var avg = arr[i] / arr.length;
var arr2 = [max, min, avg];
}
return arr2;
}
[10,-2,3.5]
Your code is almost correct, but you need to move avg
calculation and final array creation outside the for loop. 您的代码几乎是正确的,但是您需要将
avg
计算和最终数组创建移到for循环之外 。 Also, the average would be the sum divided by total units. 同样,平均值将是总和除以总单位。
const maxMinAvg = arr => { let max = arr[0]; let min = arr[0]; let 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]; } return [max, min, sum / arr.length];; }; console.log(maxMinAvg([1, 5, 10, -2]));
A slightly more succinct version using array::reduce: 使用数组稍微更简洁的版本::减少:
const maxMinAvg = arr => { const [max, min, sum] = arr.reduce(([max, min, sum], current) => { if (max < current) max = current; if (min > current) min = current; sum += current; return [max, min, sum]; }, [arr[0], arr[0], arr[0]]); return [max, min, sum / arr.length];; }; console.log(maxMinAvg([1, 5, 10, -2]));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.