Javascript中的Math.max函数

jef*_*ffr 0 javascript max

我有这个简单的问题,我无法弄清楚试图从字符串中找出最大值,是的,它是一个字符串,转换为浮点数.根据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

    }
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 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;
Run Code Online (Sandbox Code Playgroud)