Javascript Can';用三元运算符赋值
我需要根据从另一个Javascript Can';用三元运算符赋值,javascript,html,switch-statement,Javascript,Html,Switch Statement,我需要根据从另一个var获得的值,为一个var分配一个值,但它给了我未定义的值 我需要根据您预订的天数给予折扣 e、 g 现在,我需要根据预订提前多少天给予一些折扣。 我试着用三元运算符,像这样 var discount = diffDays < 61 ? 0: diffDays > 60 && diffDays < 91 ? 0.10: diffDays > 90 && diffDays < 121 ? 0.15;
var
获得的值,为一个var
分配一个值,但它给了我未定义的值
我需要根据您预订的天数给予折扣
e、 g
现在,我需要根据预订提前多少天给予一些折扣。
我试着用三元运算符,像这样
var discount = diffDays < 61 ? 0:
diffDays > 60 && diffDays < 91 ? 0.10:
diffDays > 90 && diffDays < 121 ? 0.15;
var折扣=diffDays<61?0:
diffDays>60&&diffDays<91?0.10:
diffDays>90和&diffDays<121?0.15;
但我甚至没有提醒(折扣)
非常感谢您的帮助:)检查您的控制台,您可能会遇到如下语法错误: 未捕获的语法错误:意外标记 在后一种情况下,您缺少
else
:
diffDays > 90 && diffDays < 121 ? 0.15 /* Here should be a : and an else condition
diffDays>90&&diffDays<121?0.15/*这里应该有一个:和一个else条件
例如:
var discount = diffDays < 61 ? 0 :
diffDays > 60 && diffDays < 91 ? 0.10 :
diffDays > 90 && diffDays < 121 ? 0.15 : 0.20;
var折扣=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;
}
let折扣=0;
如果(diffDays>60和&diffDays<91){
折扣=0.10;
}否则,如果(差异天数>90天){
折扣=0.15;
}
您的最后一个三元数没有与之配套的:
。还请记住,包括我在内的许多人都会建议您不要像这样链接ternaries,因为这样会降低可读性。编辑:考虑到你在让它工作时遇到了问题,你在阅读它时也会遇到问题。你是编写它的人。如果你决心使用三元,作为一种观点,至少要把条件句括在括号中以提高可读性。我不知道三元中的
。谢谢你的评论,我会记住的。这是一个非常令人困惑的说法,因为你正在与ternaries合作。我不是在“工作”,我在探索。我对编码非常在行,尤其是Javascript,记住逻辑可以简化。如果第一个If失败,则必须大于60。与>的最后一个条件相同90@Taplar同意。
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;
}