genius_7321 发表于 2020-12-27 23:18:00

JS if嵌套判断求助

本帖最后由 genius_7321 于 2020-12-28 00:07 编辑

场景:
已知array1,array2,array3(实际命名都是纯字母的没有数字结尾的规律)至少有一个不为空,另外两个有可能空
type的值为A1、A2或者A3
现在需要判断如果type=A1,并且array1不为空,则nowArray=array1(同时还有其他相关的赋值操作),如果array1为空,则看array2或者array3哪个不空赋值,大概的判断如下,请问有没有简单点的判断啊?

if(type = 'A1'){
        if (array1.length != 0){
                nowArray = array1
                nowOther = array1Other
                ......
        }else if(array2.length != 0){
                nowArray = array2
                nowOther = array2Other
                ......
        }else{
                nowArray = array3
                nowOther = array3Other
                ......
        }
}else if(type = 'A2'){
        先看array2.length是否为0
        重复上面3个判断
}esle{
        先看array3.length是否为0
        又重复上面3个判断
}

kogawananari 发表于 2020-12-28 00:00:03

let i = ['A1','A2','A3'].indexOf(type)
while(this['array'+(i+1)].length===0){
    i++
    i%=3
}
nowArray = this['array'+(i+1)]
nowOther = this['array'+(i+1)+'Other']
......

genius_7321 发表于 2020-12-28 00:04:42

kogawananari 发表于 2020-12-28 00:00


我可能没说清楚,实际环境中三个数组不是按123命名的,分别有各自的名字。。不是数字顺序

kogawananari 发表于 2020-12-28 12:18:04

genius_7321 发表于 2020-12-28 00:04
我可能没说清楚,实际环境中三个数组不是按123命名的,分别有各自的名字。。不是数字顺序

那就用正则表达式匹配

genius_7321 发表于 2020-12-28 12:43:55

本帖最后由 genius_7321 于 2020-12-28 12:48 编辑

kogawananari 发表于 2020-12-28 12:18
那就用正则表达式匹配

谢谢 我好像有点感觉了
页: [1]
查看完整版本: JS if嵌套判断求助