我已经调试了一个小时的代码,看起来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
我已经调试了一个小时的代码,看起来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
Math.min()
函数实际上期望一系列数字,但它不知道如何处理一个真正的数组,因此它会崩溃。
您可以通过使用扩展运算符... 来解决这个问题:
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
这个
var int_array = [1,2];
console.log(Math.min.apply(null,int_array));
将在所有现代浏览器中正常工作。
console.log(Math.min.apply(Math,[1,2]))
可以工作。 - IrkenInvader