我在尝试生成数组的最小值,最大值和平均值时遇到了困难。我似乎能够毫无问题地返回最小值,但是我尝试一起生成这三个值,无论是单独还是在数组内部,都会在控制台中与'undefined'作为输出。
这是我正在运行的代码(在控制台中):
function findMinMaxAvg(arr){
var min = arr[0]; // min
var max = arr[0]; // max
var sum = arr[0]; // sum
for(var i = 1; i < arr.length; i++){
if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > max) {
max = arr[i];
}
sum = sum + arr[i];
}
return min;
return max;
return sum / arr.length;
var avg = sum / arr.length; // declaring avg variable for later arrnew variable
var arrnew = [min, max, avg]; // output results into this new array
return arrnew; // return all three values inside of an array
console.log(arrnew);
}
findMinMaxAvg([1,5,10,-2]);
答案 0 :(得分:2)
您不能在函数中连续使用多个返回语句。它将始终在第一个return min
语句中退出函数。
function findMinMaxAvg(arr){
var min = arr[0]; // min
var max = arr[0]; // max
var sum = arr[0]; // sum
for(var i = 1; i < arr.length; i++){
if (arr[i] < min) {
min = arr[i];
}
if (arr[i] > max) {
max = arr[i];
}
sum = sum + arr[i];
}
return [min, max, sum / arr.length]
}
答案 1 :(得分:1)
这似乎是你正在尝试的。
var arr = [2, 3, 5, 6, 7,1, 4, 6, 5]
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];
}
console.log('max=' +max + 'min=' +min + 'avd=' + sum/arr.length);
&#13;
答案 2 :(得分:1)
你在那里90%! 从函数返回后,其余代码都不会运行。 因此,以下语句应删除,您将获得预期返回的数组!
{{1}}