2011-11-05 3 views
6

В PHP вы можете использовать это, чтобы сохранить число от 2 значений, минимальных и максимальных:Javascript мин макс

$n = min(max($n, 1), 20);

так что если $ п больше 20 будет принимать значение 20. Если он меньше 1, он примет значение 1. В противном случае он не изменится.

Как это сделать в javascript/jQuery?

+0

это на самом деле плохой код. чтобы написать общий ограничитель почти на любом общем языке, было бы так просто: Ограничитель функций (L, n, H) {return n> H? H: (n

ответ

11

Это в значительной степени то же самое в JavaScript, только что min и max являются членами Math объекта:

var n = Math.min(Math.max(n, 1), 20); 
+2

Для тех из нас, кто пристрастился к расширению объекта Math: 'Math.limit = function (min, num, max) {return Math.max (min, Math.min (num, max)); } ' – fet

6

JavaScript имеет Math.min[MDN] и Math.max[MDN].

В качестве альтернативы, вы можете использовать условный оператор:

n = n > 20 ? 20 : (n < 1 ? 1 : n) 
+0

Это, пожалуй, лучше, чем ответ Тима Купера, потому что он более общий, поскольку он будет работать с любым типом JS, который можно сравнить с внутренними более крупными, чем и более низкими, чем компараторы. –

4

Вы можете сделать это с минимальным и максимальным, но я думаю, что if яснее.

if (x > 20) x = 20; 
if (x < 1) x = 1; 
1

Вы не можете принимать максимальные и минимальные переменные. Тем не менее, это легко просто нажать переменные в массив и найти максимум и минимум массива (с немного другой синтаксис):

var value1 = 5; 
var value2 = 25; 
var value3 = -3; 

var arr = []; 
arr.push(value1); 
arr.push(value2); 
arr.push(value3); 

var maxValue = Math.max.apply(null, arr); 
var minValue = Math.min.apply(null, arr); 

alert(maxValue);// ==25 
alert(minValue);// ==-3 

или, что эквивалентно

var value1 = 5; 
var value2 = 25; 
var value3 = -3; 

var maxValue = Math.max.apply(null, [value1, value2, value3]); 
var minValue = Math.min.apply(null, [value1, value2, value3]); 

alert(maxValue);// ==25 
alert(minValue);// ==-3 
+0

Решение Felix Kling лучше. Это общий. Не только для чисел. Но тогда исходный вопрос, по общему признанию, немного спорен. –

Смежные вопросы