是否有一种简单的方法来获取两个值或这些值之间的数字?
例如:
min: 10, max: 100
(in -> out)
1 -> 10
5 -> 10
10 -> 10
50 -> 50
100 -> 100
1000 -> 100
9999 -> 100
现在我正在使用这个:
Math.max(10, Math.min(100, value));
但是有没有更有效和/或更优雅的方法来做到这一点?
最佳答案
这可能是多余的,但是这是一个可重用的解决方案:
function clamper(min, max) {
return function(v) {
return v > max ? max : (v < min ? min : v);
};
}
var clamp = clamper(0, 100);
console.log(clamp(25));
console.log(clamp(50));
console.log(clamp(74));
console.log(clamp(120));
console.log(clamp(-300));
小提琴:http://jsfiddle.net/mx3whct6/