2012-05-11 2 views
-2

Я надеюсь, что моя логика не испорчена, но я читаю полное руководство по JavaScript, и я не понимаю, как работает эта функция пользовательского абса ...Понимание функции пользовательского абса в JavaScript

function abs(x) { 
    if (x >= 0) { 
    return x; 
    } else { 
    return -x; 
    } 
} 

I recrafted его с помощью тройного оператора в попытке понять это ...

var res = (x >= 0) ? x : -x; 
return res; 

... но я до сих пор не понимаю, как это работает.

Скажем, я использую -10 как х, как он возвращает +10? Как знак обратный?

+1

Хотя я нашел степень математического знания, необходимого для кодирования в большинстве случаев намного ниже, чем ожидалось, вам нужно некоторое понимание основ - принципов приоритета оператора, скажем, или, в данном случае, правил определяющих взаимодействие положительных и отрицательных чисел. – kopischke

+0

Мне очень жаль, что я не усвоил математику. Я активно пытаюсь улучшить этот навык и применить его к программированию. Я знаю P.E.M.D.A.S и правила, которые управляют этими числами, но я не понимал, как работает return -x. Заменив x на -10, я подумал, что он тоже заменил отрицание ... но, думая глубже в нем, он просто заменяет x на (-10) и оставляет знак перед (-10), который оценивается до 10. – W3Geek

ответ

5
function abs(x) { 
    if (x >= 0) { 

     //If the number passed is greater than or equal to zero (positive) 
     //return it back as is 
     return x; 

    } else { 

     //If less than zero (negative) 
     //return the negative of it (which makes it positive) 
     // -(-10) === 10 
     return -x; 

    } 
} 
+0

Я думал, что вам нужно будет умножить -10 на -1, чтобы изменить знак, но сохранить его значение. Вот о чем я думал, верните -x * -1; но я предполагаю, что это просто сделало бы его отрицательным снова. Я думал, что -10 просто переопределит отрицательный параметр, и он останется -10. – W3Geek

2

это выглядит, как

var res = (x >= 0) ? 1 * x : -1 * x; 
3

Отрицательный 10 не больше или равно 0, так что ее противоположность возвращается.

Размещение отрицательный знак перед переменной это то же самое, что и умножение его на отрицательное 1.

2

Say я использую -10 при х, как он возвращает +10? Как знак обратный?

Это из-за этой проверки:

x >= 0 

Если число равно 0 или больше она возвращает его else возвращает отрицательный вариант, который становится положительным из-за - знака перед ним.

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