复杂的If语句; ||不像我希望的那样工作

时间:2017-12-04 04:12:23

标签: javascript if-statement

我觉得这是一个非常愚蠢的问题,但我的大脑是油炸的。现在我正在处理一组非常复杂的if和else语句,我想知道是否有更简单的方法?我最初尝试或声明,但没有给我想要的结果。

if(fields[0].value === '' && fields[1].value === '' && fields[2].value === '' && fields[3].value === '' ) {
    clusterGroup.addLayer(layer);
} else if(fields[0].value === '' && fields[1].value === city && fields[2].value === '' && fields[3].value === '') {
    clusterGroup.addLayer(layer);

} else if(fields[0].value === state && fields[1].value === '' && fields[2].value === '' && fields[3].value === '') {
    clusterGroup.addLayer(layer);

} else if(fields[0].value === state && fields[1].value === city && fields[2].value === '' && fields[3].value === ''){
    clusterGroup.addLayer(layer);

} else if(fields[0].value === '' && fields[1].value === '' && (fields[2].value <= sq && sq != null) && fields[3].value === '') {
    clusterGroup.addLayer(layer);

} else if(fields[0].value === '' && fields[1].value === '' && fields[2].value === '' && (fields[3].value >= sq  && sq != null)) {
    clusterGroup.addLayer(layer);

} else if(fields[0].value === '' && fields[1].value === city && (fields[2].value <= sq && sq != null) && fields[3].value === ''){
    clusterGroup.addLayer(layer);

} else if(fields[0].value === state && fields[1].value === '' && fields[2].value === '' && (fields[3].value >= sq  && sq != null)){
    clusterGroup.addLayer(layer);

} else if(fields[0].value === state && fields[1].value === city && (fields[2].value <= sq && sq != null) && fields[3].value === ''){
    clusterGroup.addLayer(layer);

} else if(fields[0].value === state && fields[1].value === city && fields[2].value === '' && (fields[3].value >= sq  && sq != null)){
    clusterGroup.addLayer(layer);

} else if(fields[0].value === state && fields[1].value === city && (fields[2].value <= sq && sq != null) && (fields[3].value >= sq  && sq != null)){
    clusterGroup.addLayer(layer);
}

先谢谢你。

2 个答案:

答案 0 :(得分:0)

我不知道你是如何使用OR Statement (||)的,但你可以使用一个if statement

if(
    (fields[0].value === '' && fields[1].value === ''       && fields[2].value === '' && fields[3].value === '') || 
    (fields[0].value === '' && fields[1].value === city     && fields[2].value === '' && fields[3].value === '')  ||
    (fields[0].value === state && fields[1].value === ''    && fields[2].value === '' && fields[3].value === '') || 
    (fields[0].value === state && fields[1].value === city  && fields[2].value === '' && fields[3].value === '') || 
    (fields[0].value === '' && fields[1].value === ''   && (fields[2].value <= sq && sq != null) && fields[3].value === '') || 
    (fields[0].value === '' && fields[1].value === ''   && fields[2].value === '' && (fields[3].value >= sq  && sq != null)) || 
    (fields[0].value === '' && fields[1].value === city && (fields[2].value <= sq && sq != null) && fields[3].value === '') || 
    (fields[0].value === state && fields[1].value === ''    && fields[2].value === '' && (fields[3].value >= sq  && sq != null)) || 
    (fields[0].value === state && fields[1].value === city  && (fields[2].value <= sq && sq != null) && fields[3].value === '') || 
    (fields[0].value === state && fields[1].value === city  && fields[2].value === '' && (fields[3].value >= sq  && sq != null)) || 
    (fields[0].value === state && fields[1].value === city  && (fields[2].value <= sq && sq != null) && (fields[3].value >= sq  && sq != null)) 
){
    clusterGroup.addLayer(layer);
}

答案 1 :(得分:0)

尝试将其重组为类似

的内容
if (sq != null) {
if (fields[3].value >= sq &&
    fields[2].value <= sq &&
    fields[0].value === state &&
    field[1].value === city) {

    clusterGroup.addLayer(layer);

} else if (fields[3].value >= sq) {
    if ((fields[0].value === state) ||
        (fields[0].value === state && field[1].value === city) ||
        (fields[0].value === '' &&
            field[1].value === '')) {

        clusterGroup.addLayer(layer);
    }
} else if (fields[2].value <= sq) {
    if ((fields[1].value === city) ||
        (fields[0].value === state && field[1].value === city) ||
        (fields[0].value === '' && field[1].value === '')) {

        clusterGroup.addLayer(layer);
    }
}
} else if ((fields[1].value === '' && fields[0].value === state) ||
(fields[0].value === '' && fields[1].value === city) ||
(fields[0].value === state && fields[1].value === city)) {

clusterGroup.addLayer(layer);
}