Ini tidak ingin menjadi jawaban "just-use-a-library" tetapi jika Anda menggunakan Lodash Anda dapat menggunakan .clamp:
_.clamp(yourInput, lowerBound, upperBound);
Yang seperti itu:
_.clamp(22, -10, 10); // => 10
Berikut ini implementasinya, diambil dari sumber 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;
}
Juga, perlu dicatat bahwa Lodash membuat metode tunggal tersedia sebagai modul mandiri, jadi jika Anda hanya membutuhkan metode ini, Anda bisa menginstalnya tanpa perpustakaan:
npm i --save lodash.clamp