Javasp:Math.min()返回NaN

2022-04-14 00:00:00 arrays nan math javascript

我正在尝试用Java脚本创建一段代码,用于比较纪元时间数组(它们只是大整数),并希望它找到最小或最具历史意义的时间值。

这就是我到目前为止所编写的内容,但当我运行它时,它只返回‘nan’。

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

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


解决方案

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

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

您还可以使用新的扩展语法:

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

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

当您直接传递数组时,Math.min()要做的第一件事就是尝试将其转换为一个数字,因为这正是它所期望的:单个数字。当发生这种情况时,通过一个迂回过程,结果值将是NaN

相关文章