为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

紫衣仙女 2022-08-27 09:26:18
我试图找出重写这个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;    }
查看完整描述

4 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

您可以使用 Array.some()


some() 方法测试数组中是否有至少一个元素通过了由提供的函数实现的测试。它返回一个布尔值。


const arr = [VS_TDO1, VS_TDO2, VS_TDO3, ..]

if (arr.some((elem) => elem == "11")){

     VI_TDCF = VI_TDCF + 1;

}


查看完整回答
反对 回复 2022-08-27
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

用:includes


const 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++;


查看完整回答
反对 回复 2022-08-27
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

如果您需要支持IE浏览器,请改用indexOfincludes


const arr = ["11", "12"];


if(arr.indexOf('11') > -1) {

  console.log('condition match'); // condition match

}


查看完整回答
反对 回复 2022-08-27
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

假设在数组中。然后,您可以使用javascript函数轻松检查该数组中是否包含值。VS_TODO1, VS_TODO2, ....includes


let 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');

}


查看完整回答
反对 回复 2022-08-27
  • 4 回答
  • 0 关注
  • 103 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信