2014-09-25 2 views
-3

У меня есть функция с 2 параметрами FROM и TO. TO может быть только 0, 90, 180 или 270. FROM может быть некоторое число между 0 и 360.Рассчитано, в каком направлении я должен идти

  • Если FROM и TO - это те же функции, которые должны вернуть это число.
  • Если FROM является, например, 181 и ТО является 0 возвращение 181+1
  • но если FROM179 возвращения 179-1

При 360 °, вычислить, какое направление является самым коротким, чтобы получить от FROM до TO.

Как написать эту функцию без сотен строк if и else.

nearestPath: function(from ,to){ 
     to = to%360; 
     from = from%360; 
     if(from == to){ 
      return to; 
     }else{ 
      // Calculate increment or decrement.. 
     } 

    } 
+1

Так где же ваша функция? – hindmost

+1

Я думаю, вам нужно будет объяснить эту логику ** много ** лучше? – adeneo

+1

Преобразуйте этот английский в код. – Shomz

ответ

0

Что-то вроде этого:

function calc(from, to) { 
 
    from = from%360; 
 
    to = to%360; 
 
    if (from === to) { 
 
     return from; 
 
    } 
 
    var d = from - to - 180; 
 
    if (d > 0 || d < -180) { 
 
     return ++from; 
 
    } 
 
    return --from; 
 
} 
 

 
var to = +prompt("TO"); 
 
var from = +prompt("FROM"); 
 

 
alert(calc(from,to));

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