结合math.Max和math.Min的困惑

时间:2015-09-16 09:14:20

标签: javascript

有一个我已经阅读过stackoverflow的公式,有一件事我不清楚,更多关于下面的内容。 maxMax返回括号内的第二个值和第一个中的mathMin。

因此,让我们假设我正在进行计算,让我们说:

max = 2 * 10 min = 2 * 5

为了计算一行中的最大值和最小值,我必须使用这个公式:

Math.max(a, Math.min(x, b))

我遇到的问题是math.max看起来好像在这个公式中返回math.min。这不会破坏最大的原因,还是我错过了解某些事情?

例如,在严格需要为上述公式正确或不正确的事物定义最小值和最大值的应用程序中?

2 个答案:

答案 0 :(得分:2)

Math.max(a, Math.min(x, b));

假设abx是数字,Math.min(x,b)始终已解决,并且会返回数字。

将结果带到Math.max方法,执行操作并返回更大的数字。

它也可以按两个步骤定义为

var min = Math.min(x, b);
Math.max(a, min);

阅读上面的例子应该更清晰,更容易理解。

Math.max()Math.min()

上查看更多示例

答案 1 :(得分:0)

函数Math.minMath.max的命名有点含糊。

为了将值裁剪到给定范围,您可以像这样使用它们:

clippedValue = Math.max(lowerBound, Math.min(value, upperBound))

Math.max接受任意数量的数字并返回最大的数字,而Math.min也接受任意数量的数字并返回最小的数字。

当您寻找一种削减价值的方法时,这种行为可能与您的期望相矛盾。 Math.min不会将值裁剪到最小范围,就像Math.max不会将值裁剪到最大范围一样。

但是(偶然地?)如果您更改名称,它们会按预期工作。因此,具有两个参数的Math.max就像假设的Math.clipMin一样,具有两个参数的Math.min就像假设的Math.clipMax一样。