Javascript:Math.min()返回NaN

时间:2017-07-31 17:11:19

标签: javascript arrays math nan

我试图在Javascript中创建一段代码来比较一个Epoch时间数组(只是大整数),我希望它能找到最小或最具历史意义的时间值。

这是我到目前为止所写的内容,但它只是返回了NaN'当我运行它。

var times = [1501502460000,1501497900000,1501498920000,1501493700000];
lowestTime = Math.min(times);

请注意,我使用的是Math.min()而不是Math.max()。

1 个答案:

答案 0 :(得分:10)

如果您希望Math.min()处理数组值,则必须使用.apply()

var lowestTime = Math.min.apply(Math, times);

您还可以使用新的传播语法:

var lowestTime = Math.min(... times);

但这并不适用于所有环境。

当您直接传递数组时,Math.min()做的第一件事就是尝试将其转换为数字,因为它符合预期:个别数字。如果发生这种情况,通过循环过程,结果值将为NaN