有没有办法在不引入新变量的情况下缩写if
表达式?
if ((c2 === 'RED') || (c2 === 'GREEN') || (c2 === 'BLUE')) {
return true;
} else {
return false
}
我认为它会是这样的:
if ((c2 === ('RED'|| 'GREEN' ||'BLUE')))
答案 0 :(得分:2)
Array.indexOf
会进行严格检查,因此您可以执行
if ( ['RED','GREEN','BLUE'].indexOf(c2) !== -1 ) {...
因为它已经返回一个布尔值,你可以直接返回它而没有条件
答案 1 :(得分: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
来避免!!
。)