无法使用三元运算符分配值

时间:2019-05-27 17:19:12

标签: javascript html switch-statement

我需要根据从另一个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 :(得分:0)

检查控制台,您可能会遇到语法错误,例如:

  

未捕获的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;
}