我知道这可能听起来很愚蠢,但我想知道这段代码是否可以用更短的版本编写:
if (this.myVeryLongName.aRandomProperty === 'property_1' || this.myVeryLongName.aRandomProperty === 'property_1' || this.myVeryLongName.aRandomProperty === 'property_1') {
//do something
}
可能是这样的:
if (this.myVeryLongName.aRandomProperty === ('property_1' || 'property_1' || 'property_1')) {
//do something
}
有什么方法可以缩短它并且仍然具有相同的功能吗?
答案 0 :(得分:2)
您可以制作数组并使用includes
,例如:
if ( ['property_1','property_2','property_3'].includes( this.myVeryLongName.aRandomProperty ) ) {
//do something
}
Doc:includes
答案 1 :(得分:1)
可能更好的选择(比我在评论中发布的那个)
switch(this.myVeryLongName.aRandomProperty) {
case 'property_1':
case 'property_2':
case 'property_3':
doSomethingHere();
break;
// if you have more cases, add them here!
}
请注意,如果需要更改,这将更容易阅读和扩展。
答案 2 :(得分:0)
有多种方法可以做到这一点:
['property_1','property_2','property_3'].includes( this.myVeryLongName.aRandomProperty )
(ES 2016)
['property_1','property_2','property_3'].indexOf( this.myVeryLongName.aRandomProperty ) !== -1
(ES 5)
/^(?:property_1|property_2|property_3)$/.test( this.myVeryLongName.aRandomProperty )
(任何JS版本)