繁体   English   中英

我将如何简化这个严格的平等表达

[英]How would I shorthand this strict equality expression

有什么方法可以在不引入新变量的情况下简化if表达式?

if ((c2 === 'RED') || (c2 === 'GREEN') || (c2 === 'BLUE')) {
 return true;
} else {
 return false
}

我想像是这样: if ((c2 === ('RED'|| 'GREEN' ||'BLUE')))

Array.indexOf严格检查,因此您可以执行

if ( ['RED','GREEN','BLUE'].indexOf(c2) !== -1 ) {...

并且由于它已经返回了布尔值,因此您可以直接将其返回而无需附加条件

您可以利用比较为您提供布尔结果这一事实来缩短它,因此您不需要使用布尔值的显式return

return ((c2 === 'RED') || (c2 === 'GREEN') || (c2 === 'BLUE'));

您还可以创建一个对象:

var targets = { RED: 1, GREEN: 1, BLUE: 1 };
return !!targets[c2]; // !! turns the 1 into true

(您可以在对象中使用true来避免!! 。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM