我如何得到这个脚本运行返回所需的值的最小,最大和总和
How do I get this script to run return the needed values of min max and sum
这是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
希望对你有帮助。
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- Angular js-返回一个包含类似
- JSONP请求返回结果,但也触发error_callback
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- JS验证ajax返回的html中的表单数据
- 使用谷歌应用程序脚本将服务器端数据表返回到客户端
- AJAX:$_GET不返回任何值
- 内部链接返回空错误,我在 Javascript 中找不到错误.外部链接工作得很好
- 在移动屏幕中从纵向移动到横向并返回纵向时,窗口元素在垂直方向上变得不可见
- DataTransferItem.getAsFile()返回的文件大小比原始文件大得多