定义具有最大值的var。

时间:2014-07-28 18:44:17

标签: javascript

是一个简单的单行工具,可以执行以下操作:

var asbMax = max
if (asbMax > 100000) 
  asbMax = 100000

其他语言允许您在一行中执行此操作,我想知道Javascript是否也有办法执行此操作。

4 个答案:

答案 0 :(得分:4)

好吧,你可以使用三元运算符:

var asbMax = max > 100000 ? 100000 : max;

建议防止允许的最大值上的进一步拼写错误:

var allowedMax = 100000;

var asbMax = max > allowedMax ? allowedMax : max;

请参阅:MDN – Conditional (ternary) Operator

答案 1 :(得分:2)

如果您想确保foo不超过123,有几种方法可以做到:

// the way you have
if (foo > 123) {
  foo = 123;
}

// using ternary operators
foo = foo > 123 ? 123 : foo;

// using Math.min
foo = Math.min(foo, 123);

// using a method from http://sugarjs.com/
var minimumValue = 0;
foo = foo.clamp(minimumValue, 123);

// using https://github.com/hughsk/clamp for Node.js
var clamp = require("clamp");
var minimumValue = 0;
foo = clamp(foo, minimumValue, 123);

答案 2 :(得分:2)

虽然您绝对可以使用三元运算符,但您的特定方案的另一个选项是使用Math.min。这是一个例子:

var asbMax = Math.min(max, 100000);

此方法返回传递给它的参数中的最小数字。因此,如果max小于100000,则会返回max。但如果max大于100000,则会返回100000

<强>参考:

答案 3 :(得分:0)

var asbMax = (max > 100000) ? 100000 : max;