Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';用三元运算符赋值_Javascript_Html_Switch Statement - Fatal编程技术网

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