javascript - 为什么 Math.min() 返回正无穷大,而 Math.max() 返回负无穷大?

标签 javascript math max min

当我在 javascript 数学最小值和最大值函数的参数中键入一个数组时,它返回正确的值:

console.log( Math.min( 5 ) ); // 5
console.log( Math.max( 2 ) ); // 2

var array = [3, 6, 1, 5, 0, -2, 3];
var minArray = Math.min( array ); // -2
var maxArray = Math.max( array ); // 6

但是,当我使用不带参数的函数时,它会返回错误的答案:

console.log( Math.min() ); // Infinity
console.log( Math.max() ); // -Infinity

这个返回 false:

console.log( Math.min() < Math.max() );

为什么会这样?

最佳答案

当然可以,因为 Math.min 的起始编号应该是 Infinity。所有小于正无穷大的数字都应该是列表中最小的,如果没有更小的。

Math.max 也是一样的;如果没有更大的数,则所有大于负无穷大的数都应该是最大的。

所以对于你的第一个例子:

Math.min(5) 其中 5 小于正无穷大(Infinity)它将返回 5.

更新

使用数组参数调用 Math.min()Math.max 可能不适用于每个平台。您应该改为执行以下操作:

Math.min.apply(null, [ 1, 2, 3, 4 , 5 ]);

第一个参数是作用域参数。因为 Math.min()Math.max() 是“静态”函数,我们应该将范围参数设置为 null。

关于javascript - 为什么 Math.min() 返回正无穷大,而 Math.max() 返回负无穷大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8848779/

相关文章:

javascript - 我如何修复 GM_xmlhttpRequest 中的这个 JS 范围

javascript - 如何将 javascript 和 css 文件添加到 magentomodule

algorithm - 使用 ADD、SUB、MULT 和 DIV 将某些值放入框中?

sql - 聚合关系代数(最大值)

javascript - 如何使用 React 创建纯 DOM 元素?

javascript - 将 if else 语句包装为函数

matlab - 找到雅可比迭代矩阵的谱半径

javascript - 有没有更有效的方法来归档我的双循环案例?

python - 如何在 Python/Numpy 中以最快的方式获取 "n"矩阵的最大值?

python - 获取字典中的最大值