Esto no quiere ser una respuesta "solo use una biblioteca", pero en caso de que esté usando Lodash, puede usar .clamp
:
_.clamp(yourInput, lowerBound, upperBound);
Así que eso:
_.clamp(22, -10, 10); // => 10
Aquí está su implementación, tomada de la fuente de Lodash :
/**
* The base implementation of `_.clamp` which doesn't coerce arguments.
*
* @private
* @param {number} number The number to clamp.
* @param {number} [lower] The lower bound.
* @param {number} upper The upper bound.
* @returns {number} Returns the clamped number.
*/
function baseClamp(number, lower, upper) {
if (number === number) {
if (upper !== undefined) {
number = number <= upper ? number : upper;
}
if (lower !== undefined) {
number = number >= lower ? number : lower;
}
}
return number;
}
Además, vale la pena señalar que Lodash pone a disposición métodos individuales como módulos independientes, por lo que en caso de que solo necesite este método, puede instalarlo sin el resto de la biblioteca:
npm i --save lodash.clamp