无法使用三元运算符赋值



我需要根据从另一个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)

任何帮助将不胜感激:)

检查您的控制台,您可能会收到如下语法错误:

未捕获的语法错误:意外的令牌;

在后面的条件下,您缺少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;
}

最新更新