这个似乎是真实的。如何将此减少为if if语句?
let combined = true;
if(earlyCallback){
combined = self.allChildBlocksCompleted;
}
if (self.parent && combined) { // I want to put everything here
}
这是对的吗?
if(self.parent || (earlyCallback && self.allChildBlocksCompleted)){
}
我认为这是对的,但我现在还不知道。
答案 0 :(得分:2)
我更喜欢这样做:
if (self.parent && (earlyCallback ? self.allChildBlocksCompleted : true )) { }
答案 1 :(得分:1)
这相当于接受的答案:
if (self.parent && (!earlyCallback || self.allChildBlocksCompleted)) {
您可能会认为这比需要硬编码文字true
和三元运算符的其他答案更简单。它还缩短了几个字符:
if (self.parent && (earlyCallback ? self.allChildBlocksCompleted : true)) {
你可以简化"它进一步通过交换一个"或"对于额外的不是和"和"使用De Morgan:
if (self.parent && !(earlyCallback && !self.allChildBlocksCompleted)) {