涉及if语句时,可以重构此代码
(这只是一个示例,并不涉及“真实”代码)
.option("driver", "com.microsoft.sqlserver.jdbc.SQLServerDriver")
到
if(person === 'customer' || person === 'employee' || person === 'other')
当前,我有一个名为if(person === ('customer' || 'employee' || 'other'))
的对象,其中包含3个布尔属性。如果至少一个属性返回state
,我想显示一个覆盖图。我目前的解决方案是
true
,我在问是否有办法清理它。伪代码是
showOverlay: state => state.isNavigating || state.isHttpRequesting || state.isProcessing
我知道不会有什么大的收获,但是它将删除所有showOverlay: state => (isNavigating || isHttpRequesting || isProcessing) of state
部分。
答案 0 :(得分:3)
使用一组属性名称,并检查其中some
是否真实:
showOverlay: state => ['isNavigating', 'isHttpRequesting', 'isProcesing'].some(prop => state[prop]);
也许DRY更好,但可以说不错,但是当只有3个IMO属性时,它的可读性就差了。