我有这个简单的问题,我无法弄清楚尝试从字符串中找出最大值,是的,它是一个字符串,转换为浮点数。根据JS,它可以采用数组...但每次我尝试找到最大值时,它只是打印第一个值。在这种情况下13 ......不确定为什么?预期的结果是30.
请帮忙。谢谢!
function myFunction() {
var str = "13, 24, 30, 4";//30
var res = str.split(",");
var max = Math.max(parseFloat(res));
document.getElementById("demo").innerHTML = res+ " " + max;//test
}
答案 0 :(得分:5)
res
是一个数组。 parseFloat
需要一个字符串。 Math.max
不接受数组,而是接受多个参数。请注意,您甚至不需要parseFloat
,因为Math.max
无论如何都会将其参数转换为数字。因此,您必须使用apply
将数组转换为Math.max
:
var str = "13, 24, 30, 4";
var max = Math.max.apply(Math, str.split(", "));
document.getElementById("demo").innerHTML = "max("+res+") = "+max;