我应该如何重写这个长条件语句,使其成为具有迭代的数组

我试图找出重写这个if语句的最佳方法,因为它太长了,并且有很多OR子句,这些子句非常乏味。当然,这可以以更清晰的方式编写,我正试图找出重写此代码的最佳操作方案。我在想,也许我应该把所有条件都放到一个数组中,然后写一个for循环来迭代每个条件,或者有没有更好的方法更简洁?


感谢您的帮助


if (

      VS_TDO1 == '11' ||

      VS_TDO2 == '11' ||

      VS_TDO3 == '11' ||

      VS_TDO4 == '11' ||

      VS_TDO5 == '11' ||

      VS_TDO6 == '11' ||

      VS_TDO7 == '11' ||

      VS_TDO8 == '11' ||

      VS_TDO9 == '11' ||

      VS_TD10 == '11' ||

      VS_TD11 == '11' ||

      VS_TD12 == '11'

    ) {

      VI_TDCF = VI_TDCF + 1;

    }


紫衣仙女
浏览 104回答 4
4回答

慕尼黑的夜晚无繁华

您可以使用 Array.some()some() 方法测试数组中是否有至少一个元素通过了由提供的函数实现的测试。它返回一个布尔值。const arr = [VS_TDO1, VS_TDO2, VS_TDO3, ..]if (arr.some((elem) => elem == "11")){     VI_TDCF = VI_TDCF + 1;}

慕哥9229398

用:includesconst arr = [VS_TDO1, TS_TDO2, VS_TDO3, ...];if (arr.includes("11")) VI_TDCF++;对于较旧的环境:var arr = [VS_TDO1, TS_TDO2, VS_TDO3, ...];if (arr.indexOf("11") != -1) VI_TDCF++;

汪汪一只猫

如果您需要支持IE浏览器,请改用indexOfincludesconst arr = ["11", "12"];if(arr.indexOf('11') > -1) {  console.log('condition match'); // condition match}

慕田峪7331174

假设在数组中。然后,您可以使用javascript函数轻松检查该数组中是否包含值。VS_TODO1, VS_TODO2, ....includeslet VS_TODO1 = '11', VS_TODO2 = '12', VS_TODO3 = '13';const arr = [VS_TODO1, VS_TODO2, VS_TODO3];if(arr.includes('11')) {  console.log('condition match');}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript