javascript - 不能用三元运算符赋值
问题描述
我需要为 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)
任何帮助将不胜感激:)
解决方案
检查您的控制台,您可能会收到如下语法错误:
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;
}
推荐阅读
- next.js - 为什么 Next.js 在 app.js 前加上下划线?
- node.js - 无法为 mongoDB 设置路径
- reactjs - 如何在反应中用 axios 开玩笑地测试异步操作?- 第2部分
- javascript - 如何为预加载器添加延迟,以便即使在页面加载几秒钟后预加载器也会显示
- c++ - 如果我想让 cmake 总是使用 g++5.4 我该怎么办
- powershell - PowerShell 从 CSV 中删除行
- typescript - 开玩笑:node_module 依赖项使用了 import 语句并导致测试崩溃
- javascript - 如何在 Framework7 Store 中查看变量
- javascript - 获取 api 响应数据超出范围
- hex - 如何将包含十六进制的字符串转换为数字?