如果内联两个动作,如果为真

时间:2017-02-14 16:45:38

标签: javascript

我正在创建一个时钟并尝试使用内联,这里是代码:

h == 24 ? _setWeekDay($this) && (h = 0) : h > 24 ? _setWeekDay($this) && (h -= 24): null; 

但问题是当h> 24代码设置工作日,但不要减去h - = 24!你能解释一下为什么这不起作用吗?

1 个答案:

答案 0 :(得分:1)

h == 24 
    ? _setWeekDay($this) && (h = 0) 
    : h > 24 
        ? _setWeekDay($this) && (h -= 24)
        : null; 

更容易拆分以提高可读性。您的问题是&&,这不是您想要完成的任务。您正在使用三元运算符,这对于不生成如此多的if语句很有用。你需要的是:

h == 24 
    ? (_setWeekDay($this), (h = 0)) 
    : h > 24 
        ? (_setWeekDay($this), (h -= 24))
        : null; 

这将允许您以三元条件执行多个操作。见jsfiddle