首页 > 解决方案 > 不能用三元运算符赋值

问题描述

我需要为 a 分配一个值,var具体取决于从 another 获得的值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)

任何帮助将不胜感激:)

标签: javascripthtmlswitch-statement

解决方案


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

Uncaught SyntaxError: Unexpected token ;

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;
}

推荐阅读