Đây không muốn là câu trả lời "chỉ sử dụng một thư viện" nhưng chỉ trong trường hợp bạn đang sử dụng Lodash, bạn có thể sử dụng .clamp
:
_.clamp(yourInput, lowerBound, upperBound);
Vậy nên:
_.clamp(22, -10, 10); // => 10
Đây là cách thực hiện của nó, được lấy từ nguồn 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;
}
Ngoài ra, điều đáng chú ý là Lodash cung cấp các phương thức đơn lẻ dưới dạng các mô-đun độc lập, vì vậy trong trường hợp bạn chỉ cần phương thức này, bạn chỉ có thể cài đặt nó mà không cần phần còn lại của thư viện:
npm i --save lodash.clamp