Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2013, 09:16
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Как сократить x > 0 ? 1 : (x < 0 ? -1 : 0)
В F# есть для этого функция Math.sign(x).
Функция должна работать так:

function sign(x) {
    if (x > 0)
        return +1;
    if (x < 0)
        return -1;
    return 0;
}
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2013, 10:28
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

danik.js, можно так

function sign(x) {
   return x/Math.abs(x)|0;
}


Или так:

function sign(x) {
   return x < 0 ? -1 : +!!x;
}

Последний раз редактировалось ruslan_mart, 29.08.2013 в 13:31.
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2013, 18:44
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

function sign(x){
    return x && ( x >> 31 ) * 2 + 1
}
__________________
.ня
Ответить с цитированием
  #4 (permalink)  
Старый 29.08.2013, 18:51
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

магийа)
Ответить с цитированием
  #5 (permalink)  
Старый 29.08.2013, 19:38
Профессор
Отправить личное сообщение для BallsShaped Посмотреть профиль Найти все сообщения от BallsShaped
 
Регистрация: 14.09.2012
Сообщений: 162

tenshi, почему не return x && ( x >> 31 || 1 )? Разве нельзя обойтись без арифметических операций?
Ответить с цитированием
  #6 (permalink)  
Старый 30.08.2013, 05:02
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Вариант с Math.abs отличный. А зачем там |0 ?
Ответить с цитированием
  #7 (permalink)  
Старый 30.08.2013, 05:28
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Одного не понимаю - зачем???
Ответить с цитированием
  #8 (permalink)  
Старый 30.08.2013, 05:54
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Riim, что зачем?
На входе получаем некое число, положительное, 0 или отрицательное, на выходе нужно иметь +1, 0 или -1
Ответить с цитированием
  #9 (permalink)  
Старый 30.08.2013, 06:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Хотя вроде бы мне это действительно не нужно )
Я мучаюсь с событием WheelEvent. Мне нужно кроссбраузерно получать значение дельт при прокрутке.
Ответить с цитированием
  #10 (permalink)  
Старый 30.08.2013, 09:43
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от danik.js
что зачем?
зачем сокращать? Чем плох нормальный вариант записи?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как сделать как в JQ? faforty Общие вопросы Javascript 8 14.11.2011 01:35
Задача: палец > кнопка > div > to >textarea Апельсин Events/DOM/Window 12 19.03.2010 20:40
< input type=file > не попадают в $_FILES ce39 Элементы интерфейса 8 01.10.2009 15:33