我如何得到这个脚本运行返回所需的值的最小,最大和总和

How do I get this script to run return the needed values of min max and sum

本文关键字:何得 返回 运行 脚本      更新时间:2023-09-26

这是JSFiddle的链接

var num = prompt("Enter numbers seperated by spaces");
num = [];
var max = function (num) {
    var largest = num[0];
    for (var i = 1; i < num.length; i += 1) {
        if (num[i] > largest) {
            largest = num[i];
        }
    }
    return largest;
};
var min = function (num) {
    var smallest = num[0];
    for (var i = 1; i > num.length; i -= 1) {
        if (num[i] > smallest) {
            smallest = num[i];
        }
    }
    return smallest;
};
var sum = function (num) {
};
return("Minimum is " + min + ", Maximum is " + max + ", Sum is " + sum + ".");
alert(return);

我需要脚本返回在return()

中的句子中的数值

正如@JJPA已经提到的,您的代码有多个问题。如果你想让它正常工作,你必须修复它们。

然而,如果你想学习新的方法,可以使你的任务更容易和更短,你可以看看这个替代解决方案:

function worker(str) {
    var numbers = str.split(/'s+/).map(Number),
        max = Math.max.apply(this, numbers),
        min = Math.min.apply(this, numbers),
        sum = numbers.reduce(function(a, b) { return a + b });
    return 'Minimum is ' + min + ', Maximum is ' + max + ', Sum is ' + sum + '.';
}
alert( worker(prompt()) );

它完全是你想要的,但这里你使用了JavaScript数组和数学方法的所有功能。

首先,读取提示符并将该变量初始化为新数组。下面的线。所以num中没有任何值了

var num = prompt("Enter numbers seperated by spaces");
num = [];

第二,您得到SyntaxError: Unexpected token return是因为您以错误的方式使用了return。阅读通过搜索返回。

第三,你没有正确调用min, max和sum方法。

示例代码如下:

var num1 = prompt("Enter numbers seperated by spaces");
var num = num1.split(' ');
console.log(typeof (num));
var max = function (num) {
    var largest = num[0];
    for (var i = 1; i < num.length; i += 1) {
        if (num[i] > largest) {
            largest = num[i];
        }
    }
    return largest;
};
var min = function (num) {
    var smallest = num[0];
    for (var i = 1; i > num.length; i -= 1) {
        if (num[i] > smallest) {
            smallest = num[i];
        }
    }
    return smallest;
};
var sum = function (num) {
};
alert("Minimum is " + min(num) + ", Maximum is " + max(num) + ", Sum is " + sum(num) + ".");

编辑:用下面的和代替。添加return语句可以解决未定义问题。

var sum = function (num) {
     var s = 0;
     for (var i = 0; i < num.length; i++) {
        s = s + parseInt(num[i], 10);
     }
     return s;
};

return返回函数的值。这里的一个解决方案是获取用户输入,在调用函数时将其作为参数添加,并让该函数的结果返回给您所需的信息。下面是重写的代码,以使用JS允许的简写版本:

var num = prompt("Enter numbers separated by spaces");
function getValues(num) {
  // split the user input into an array
  // and convert the string values to integers
  var arr = num.split(' ').map(Number);
  // Use the Math functions to get the max and min values from the array
  var max = Math.max.apply(null, arr);
  var min = Math.min.apply(null, arr);
  // Reduce allows you to grab the sum of the values
  var sum = arr.reduce(function (p, c) { return p + c; });
  // return an object with all the values attached
  return { max: max, min: min, sum: sum };
}
// get the result by passing in num
var result = getValues(num);
console.log(result); //  { max=66, min=1, sum=79 }
console.log(result.max) // 66
console.log(result.min) // 1
console.log(result.sum) // 79

希望对你有帮助。