Методи об'єктів математики Javascript - мінуси до нуля


87

у Javascript я не можу знайти метод встановити мінуси на нуль?

-90 стає 0
-45 стає 0
0 стає 0
90 стає 90

Чи є щось подібне? Я щойно округлив цифри.

Відповіді:


180

Просто зробіть щось подібне

value = value < 0 ? 0 : value;

або

if (value < 0) value = 0;

або

value = Math.max(0, value);

2
Швидкий JSPerf показує значення = значення <0? 0: значення; знаходиться зверху jsperf.com/negatives-to-zero
Скіп

21
Мені найбільше подобається Math.max, тому що він вимагає посилання лише valueодин раз
Метт Флетчер

60

Я думаю, ви могли б використати Math.max().

var num = 90;
num = Math.max(0,num); // 90

var num = -90;
num = Math.max(0,num); // 0

3
На мою думку, це має бути прийнятою відповіддю. Просто кажу ... :)
ksugiarto

2
Майте на увазі одне, і те, Math.max(0, NaN)і інше, і Math.max(0, undefined)поверніться, NaNтож, можливо, ви захочете зробити щось у цьому напрямку:Math.max(0, num) || 0
jwerre

7

Якщо ви хочете бути розумними:

num = (num + Math.abs(num)) / 2;

Однак Math.maxабо умовний оператор буде набагато зрозумілішим.
Крім того, це має проблеми з точністю для великої кількості.


4
Math.positive = function(num) {
  return Math.max(0, num);
}

// or 

Math.positive = function(num) {
  return num < 0 ? 0 : num;
}

нуль не є ні позитивним, ні негативним, вашу функцію слід перейменовувати відповідно до цього
Кіллі,



-1

Я не вірю, що така функція існує з власним об'єктом Math. Вам потрібно написати сценарій для заповнення функції, якщо вам потрібно її використовувати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.