2015-09-26 3 views
0

Недавно я обнаружил форму, используя условное, как:Javascript Условный

function leftPad(res6) {return (res6 < 10)?'0'+ res6:res6;} 
res6 =leftPad(res6); 

Это нормально внутри функции заявления. Я не знаю, как работать с этим типом инструкции самостоятельно (без выражения функции, если для этой строки есть соответствующий оператор функции).

Пример: Я хочу иметь вывод, который сравнивает дату с текущим значением, если это после сегодняшнего дня, используйте «с», иначе используйте «до». Как только я пойму, как написать этот оператор, я могу сравнить значения даты и установить переменную в правильный результат, чтобы перейти в мою выходную строку.

Благодаря

+1

ваши два заявления могут быть записаны в виде одного ... 'res6 = (res6 <10) '0' + res6: res6;' ... делает это ответит на ваш вопрос? –

+0

^^ Что @JaromandaX сказал. Ему даже не нужно '()': 'res6 = res6 <10? '0' + res6: res6; ' –

+0

Это поможет очистить код в моем предыдущем вопросе. Спасибо за это предложение. Но этот текущий вопрос все еще остается. – levelbest

ответ

0

Что вы descibing есть Conditional (ternary) Operator. Он не должен быть в функции, и ваш код может быть написан в одной строке, как T.J. - сказал Кроудер.

res6 = res6 < 10 ? '0' + res6 : res6; 

Для второй части, и отвечать на ваши комментарии, вы хотите использовать Date объект.

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds 
var firstDate = new Date(); 
var secondDate = new Date("October 1, 2015 12:00:00"); 

var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay))); 
var since_until = d2 > d0 ? 'since' : 'until'; 

var sentence = "- " + diffDays + " Days " + since_until + " 10/01/2015 - Oct Pension" + "\n"; 

Со ссылкой на этот вопрос: How to calculate the number of days between two dates using JavaScript?

+0

Переменная печатается как текстовое имя переменной с кавычками. Не уверен, почему, но, очевидно, я как-то испортил кавычки? Благодарю. var d0 = new Дата() var d2 = new Дата ("1 октября 2015 12:00:00"); // «Некоторое событие» var now_then2 = d2> d0? 'since': 'до'; var diff2 = Math.abs (d0-d2); // разность в миллисекундах var res2 = Math.round (diff2/one_day); res2 = res2 <10? '0' + res2: res2; "-" + res2 + "Days" + now_then2 + "10/01/2015 - Oct Pension" + "\ n" + // Выход: - 05 дней "+ now_then2 +" 10/01/2015 - Некоторое Событие – levelbest

+0

@levelbest см. Мое редактирование – enigma

+0

Я ценю вашу маркировку примера. Проблема, с которой я сталкиваюсь, заключается в том, что я получаю разные результаты от результата. Ввод «-» + res6 + «Days» + word6 + »11/01/2015 - Некоторые данные и word6, доказывает, что переменная word6 имеет правильные данные в It. Но она печатает как строку с переменная и кавычки, а переменная - это имя, а не значение. - 36 дней «+ word6 +» 11/01/2015 - некоторые данные – levelbest

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