Luk*_*tep 4 javascript compare
我想验证给定数字是否在给定范围内:
function validate(min, max, amount) {
return (min <= amount <= max);
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不能正常工作.我知道我可以通过两个比较和一个逻辑AND来做到这一点,但我想在一个比较中做到这一点.是否有任何NATIVE JavaScript方法来实现这一点?
请改用:
return (min <= amount && amount <= max);
Run Code Online (Sandbox Code Playgroud)
没有捷径.并且有一个很好的理由,JavaScript引擎无法猜测你的意图:你输入的内容是有效的,它只是没有被解释为你想要的.事实上,你正在测试
((min <= amount) <= max)
Run Code Online (Sandbox Code Playgroud)
并且第一次比较的结果(布尔值)被转换为0或1用于第二次(此处有关运算符优先级的更多详细信息,这些比较运算符是从左到右).
如果你真的想要一个快捷方式,你可以这样做:
Number.prototype.isin = function(m,M) {
return m<=this && this<=M;
};
console.log(0.5.isin(1,2)); // logs false
console.log(3..isin(2,5)); // logs true
Run Code Online (Sandbox Code Playgroud)
但我个人会使用标准解决方案&&,每个人都可以阅读,而不涉及额外的函数调用.
旁白:我可以调用我的函数in而不是isin它可能会破坏ES3浏览器.