Невозможно присвоить значение с помощью троичного оператора - PullRequest
0 голосов
/ 27 мая 2019

Мне нужно присвоить значение var в зависимости от значения, полученного от другого var, но это дает мне неопределенное значение.

Мне нужно предоставить скидку в зависимости от того, в какие дни вы заранеесделал оговорку, например

<input type="date" id="arriveDate">
<input type="submit" value="submit">

Дело в том, что мне нужно рассчитать дни между сегодняшним днем ​​и arriveDate.С этим проблем нет (но любой комментарий будет приветствоваться)

в js. Я делаю это так

var today = Date.now();
var arriveDateInserted = new Date(document.getElementById("arriveDate").value);

var diffDays = Math.round(((arriveDateInserted - today)/86400000)+1);

Теперь мне нужно дать скидку в зависимости от того, сколько дней впередбронирование сделано.Я пытался с троичным оператором, как это.

var discount = diffDays < 61 ? 0:
    diffDays > 60 && diffDays < 91 ? 0.10:
    diffDays > 90 && diffDays < 121 ? 0.15;

Но у меня даже нет alert(discount)

Любая помощь будет ОЧЕНЬ признателен:)

1 Ответ

0 голосов
/ 27 мая 2019

Проверьте консоль, возможно, вы получаете синтаксическую ошибку, такую ​​как:

Uncaught SyntaxError: неожиданный токен;

Вы пропустили else вболее позднее условие:

diffDays > 90 && diffDays < 121 ? 0.15 /* Here should be a : and an else condition

Пример:

var discount = diffDays < 61 ? 0 :
    diffDays > 60 && diffDays < 91 ? 0.10 :
    diffDays > 90 && diffDays < 121 ? 0.15 : 0.20;

Я бы посоветовал избегать использования вложенных троичных условий для лучшего чтения:

let discount = 0;
if (diffDays > 60 && diffDays < 91) {
    discount = 0.10;
} else if (diffDays > 90) {
    discount = 0.15;
}
...