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);
I'm trying to find the min,max and avg of the given array, every time I run this code the output is always "(-2, -2 2) can anyone explain it to me?
Try like this.
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);
I would try to simplify your code with separated functions, something like:
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);
You need to change some indices to 1
instead of zero and start the loop from index one, because you take the values from index zero ass start value.
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);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.