Помогите с тернарным оператом
Вложений: 1
Добрый день!
Есть плагин рейтинга для joomla - Extra Vote Загвоздка с файлом extravote.js (во вложении). В нем есть следующая строка: 0!=k&&(d=1!=b?d+extravote_text[5].replace("%s",b):d+extravote_text[6].replace("%s",b)); Не могу разобраться как работает этот код. Нагуглил, что это тернарный оператор, попытался превратить его в простую форму: 0!=k&&( if (1!=b) { d=d+extravote_text[5].replace("%s",b); } else { d=d+extravote_text[6].replace("%s",b); } ); Не работает, что я делаю не так? Да, с javascript только начинаю знакомство. |
rixter,
if (0!=k){ if (1!=b) { d=d+extravote_text[5].replace("%s",b); } else { d=d+extravote_text[6].replace("%s",b); } }; |
рони,
Спасибо! Работает. Буду дальше пилить. |
Опять я в ступоре.
Собственно изначально была цель разнообразить окончания у "Голос/а/ов" Привел код в такой вид if (0!=k) { var b_term = b.substr(-2); if (b_term > 10 && b_term < 15) { d=d+extravote_text[5].replace("%s",b);/*Голосов*/ } else { var b_term = b.substr(-1); if (b_term == 0 || b_term > 4) { d=d+extravote_text[5].replace("%s",b);/*Голосов*/ } if (b_term == 1) { d=d+extravote_text[6].replace("%s",b);/*Голос*/ } if (b_term > 1 && b_term < 5) { d=d+extravote_text[8].replace("%s",b);/*Голоса*/ } } }; Не работает, в чем может быть дело? |
rixter,
это у вас b.substr(-1); что ? или это b.substr(-2); |
Извините, не понял вопроса.
Этот код переделывал с рабочего php-варианта. Логика такая, взять последние две цифры количества голосов (b): var b_term = b.substr(-2); Если b_term число от 11 по 14: if (b_term > 10 && b_term < 15) то вывести "голосов" Иначе, взять 1 последнюю цифру: var b_term = b.substr(-1); И дальше проверять ее и выводить соответствующий результат. Неправильно определяю b_term? Или может неправильные исходные данные, т.е неверно предположил, что "b" это количество голосов. Хотя в оригинале идет проверка (1!=b). |
rixter,
всё понятно как и зачем вы делаите, но постарайтесь ответить как программист чем является b_term если ответите верно будет плюшка))) |
рони,
дык если б я был программистом :) В моем понимании b_term это переменная. |
rixter,
может это обьект или функция? :-? |
rixter,
небуду мучать что ваш код работал поставьте + в обоих случаях var b_term = +b.substr(-2); |
Часовой пояс GMT +3, время: 11:27. |