Javascript:Math.min() 返回 NaN [重复]

Posted

技术标签:

【中文标题】Javascript:Math.min() 返回 NaN [重复]【英文标题】:Javascript: Math.min() returns NaN [duplicate] 【发布时间】:2018-01-07 08:53:30 【问题描述】:

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

这是我到目前为止所写的,但是当我运行它时它只返回“NaN”。

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

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

【问题讨论】:

【参考方案1】:

如果你想让Math.min() 处理一个数组 值,你必须使用.apply()

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

您也可以使用新式传播语法:

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

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

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

【讨论】:

需要注意的是,之所以必须这样做是因为Math.min没有将数组作为参数。它需要一个逗号分隔的 n 个参数列表,这就是 .apply()... 工作的原因 - 它们将数组转换为逗号分隔的值列表。

以上是关于Javascript:Math.min() 返回 NaN [重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript中常用的Math方法

javascript中Math函数的属性与方法

math对象的主要方法

javascript Math.min Math.max

javascript Math.Min

在javascript中的数组中查找多个最小值的索引