Javasp:Math.min()返回NaN
我正在尝试用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
。
相关文章