简体   繁体   English

Javascript最大最小平均

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM