这个问题在这里已有答案:
说到if语句,可以重构这段代码
(这只是一个例子而不是指“真正的”代码)
if(person === 'customer' || person === 'employee' || person === 'other')
至
if(person === ('customer' || 'employee' || 'other'))
目前我有一个名为state
的对象,包含3个布尔属性。如果至少有一个属性返回true
,我想显示叠加。我目前的解决方案是这样
showOverlay: state => state.isNavigating || state.isHttpRequesting || state.isProcessing
而且我在问是否有办法清理它。伪代码就是
showOverlay: state => (isNavigating || isHttpRequesting || isProcessing) of state
我知道它没有大的收获,但它将删除所有state. ...
部分。
使用属性名称数组,并检查它们的some
是否真实:
showOverlay: state => ['isNavigating', 'isHttpRequesting', 'isProcesing'].some(prop => state[prop]);
也许它更干,这可以说是好的,但是当IMO只有3个属性时它可读性稍差,这可能是坏的。