Получить абсолютное значение числа в Javascript
Я хочу получить абсолютное значение числа в JavaScript. То есть, отбросьте знак.
Я знаю математически, я могу это сделать, возводя квадрат в квадрат, но я также знаю, что это ужасно неэффективно.
x = -25
x = x * x
x = sqrt(x)
// x would now be 25
Есть ли способ в JavaScript просто отказаться от знака числа, которое более эффективно, чем математический подход?
Ответы
Ответ 1
Вы имеете в виду получить абсолютное значение числа? Math.abs
функция javascript предназначена именно для этой цели.
var x = -25;
x = Math.abs(x); // x would now be 25
Вот несколько примеров из документации:
Math.abs('-1'); // 1
Math.abs(-2); // 2
Math.abs(null); // 0
Math.abs("string"); // NaN
Math.abs(); // NaN
Ответ 2
Вот быстрый способ получить абсолютное значение числа. Это применимо на каждом языке:
(x ^ (x >> 31)) - (x >> 31);
Ответ 3
Я думаю, что вы ищете Math.abs(x)
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/abs
Ответ 4
Если вы хотите узнать, как JavaScript реализует эту функцию, вы можете прочитать этот пост.
Вот реализация, основанная на исходном коде хрома.
function MathAbs(x) {
x = +x;
return (x > 0) ? x : 0 - x;
}
Ответ 5
Альтернативное решение
Math.max(x,-x)
let abs = x => Math.max(x,-x);
console.log(abs(24));
console.log(abs(-24));
Ответ 6
Хорошо только для записи, может быть еще один упрощенный метод:
var abs = x => Math.sqrt(x*x)
Ответ 7
Это умножит число на 1 или -1
x * (x/x)