为什么Math.min([1,2])会返回NaN?

时间:2016-04-13 20:10:22

标签: javascript

我一直在调试此代码大约一个小时,看起来Math.min([1,2])会返回NaN

var int_array = [1,2]
console.log(Math.min(int_array)) //prints NaN, but expect 1
isNaN(Math.min(int_array))===true

3 个答案:

答案 0 :(得分:21)

Math.min()函数实际上需要一系列数字,但它不知道如何处理实际数组,所以它正在爆炸。

您可以使用spread operator ...

解决此问题
var int_array = [1,2];
console.log(Math.min(...int_array)); // returns 1

你也可以通过Function.apply()函数实现这一点,该函数本质上会做同样的事情,但不是很漂亮:

var int_array = [1,2];
console.log(Math.min.apply(null,int_array)); // returns 1

答案 1 :(得分:4)

将数组作为第一个参数传递给min函数

Math.min([1,2])

来自MDN

  

如果至少有一个参数无法转换为数字,则结果为NaN。

答案 2 :(得分:0)

这个

11111

可以在所有实际浏览器中使用。