在JavaScript中多个检查一个

在JavaScript中多个检查一个,javascript,Javascript,我知道这听起来很愚蠢,但我想知道这段代码是否可以用更短的版本编写: if (this.myVeryLongName.aRandomProperty === 'property_1' || this.myVeryLongName.aRandomProperty === 'property_1' || this.myVeryLongName.aRandomProperty === 'property_1') { //do something } 也许是这样的: if (this.myV

我知道这听起来很愚蠢,但我想知道这段代码是否可以用更短的版本编写:

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
}

有什么方法可以使它变短并且仍然具有相同的功能吗?

您可以制作一个数组并使用
包含
,例如:

if ( ['property_1','property_2','property_3'].includes( this.myVeryLongName.aRandomProperty ) ) {
    //do something
}

Doc:

您可以创建一个数组并使用
includes
,例如:

if ( ['property_1','property_2','property_3'].includes( this.myVeryLongName.aRandomProperty ) ) {
    //do something
}

文档:

可能是更好的选择(比我在评论中发布的更好)


请注意,如果需要更改,这将更易于阅读,并且在将来可以扩展。

可能是更好的选择(比我在评论中发布的更好)


请注意,这更易于阅读,并且在将来需要更改时可以扩展。

有多种方法可以做到这一点:

  • (ES 2016)

  • (附录5)

  • (任何JS版本)


    • 有多种方法可以做到这一点:

      • (ES 2016)

      • (附录5)

      • (任何JS版本)


      ['item1'、'item2'、'item3'].indexOf(超长型)>-1
      ['item1'、'item2'、'item3'].indexOf(超长型)>-1
      ['property_1','property_2','property_3'].includes( this.myVeryLongName.aRandomProperty )
      
      ['property_1','property_2','property_3'].indexOf( this.myVeryLongName.aRandomProperty ) !== -1
      
      /^(?:property_1|property_2|property_3)$/.test( this.myVeryLongName.aRandomProperty )