Ale*_*dra 60 javascript integer numbers
我想限制两个值之间的数字,我知道在PHP中你可以这样做:
$number = min(max(intval($number), 1), 20);
// this will make $number 1 if it's lower than 1, and 20 if it's higher than 20
Run Code Online (Sandbox Code Playgroud)
如何在javascript中执行此操作,而不必编写多个if语句和类似的东西?谢谢.
Gov*_*iya 114
像这样
var number = Math.min(Math.max(parseInt(number), 1), 20);
Run Code Online (Sandbox Code Playgroud)
T.J*_*der 10
您至少有两个选择:
您可以使用一对条件运算符(? :):
number = number > 100 ? 100 : number < 0 ? 0 : number;
Run Code Online (Sandbox Code Playgroud)
或者你也可以结合Math.max和Math.min:
number = Math.min(100, Math.max(0, number));
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,相对容易混淆自己,所以如果你在多个地方这样做,你可能会考虑使用效用函数:
function clamp(val, min, max) {
return val > max ? max : val < min ? min : val;
}
Run Code Online (Sandbox Code Playgroud)
然后:
number = clamp(number, 0, 100);
Run Code Online (Sandbox Code Playgroud)
无需进一步解释:
function clamp(value, min, max) {
return Math.min(Math.max(value, min), max);
}
Run Code Online (Sandbox Code Playgroud)
ECMAScript 2017 更新:
Math.clamp(x, lower, upper)
| 归档时间: |
|
| 查看次数: |
51221 次 |
| 最近记录: |