javascript - 关于JS嵌套if语句的更好解决方案

标签 javascript jquery if-statement

假设我的 html 中有 3 个 div。 ID 是:

  • 斯蒂芬
  • 第二步
  • 第三步

我想首先在stepone div上加载来自服务器的json数据,如果返回为“1”,则在stepone div上打印good。

然后在steptwo div中加载数据,数据也是json。基本上这就是过程,以下是我的代码:

$(document).ready(function(){
    var loadingone = $.post("stepone.php");
        .done(function(dataone){
        objone = JSON && JSON.parse(dataone) || $.parseJSON(dataone);   //get json return from server
        if (objone.status == "1") {
            $("#stepone").html("good");
            var loadingtwo = $.post("steptwo.php")
                .done(function(datatwo){
                    objtwo = JSON && JSON.parse(datatwo) || $.parseJSON(datatwo);
                    if (objtwo.status == "1"){
                        $("#steptwo").html("good");
                    }
                    else
                    {
                        $("#steptwo").html("bad");
                    }
                });
        }
        else
        {
            $("#stepone").html("message" + objone.codeurl);
        }
    });
});

正如您所看到的,代码包含嵌套的 if 语句,看起来不太清楚。我想知道是否有更好的解决方案?谢谢 ===更新数据=== 这是我编辑后的代码,对吗?

var loadingone = $.post("stepone.php");
    .done(function(dataone){
    objone = JSON && JSON.parse(dataone) || $.parseJSON(dataone);

    if (objone.status != "1"){
        $("#stepone").html("bad" + objone.codeurl")
    }
    else{
        $("#stepone").html("good");
        var loadingtwo = $.post("steptwo.php");
            .done(function(datatwo){
                objtwo = JSON && JSON.parse(datatwo) || $.parseJSON(datatwo);
                if (objtwo.status != "1"){
                    $("#steptwo").html("bad");
                }
                else
                {
                    $("#steptwo").html("good");
                }
            }
    }

最佳答案

否定你的表达。

而不是遵循这样的模式:

if A {
    if B {
        if C {
            do stuff
        }
        else error C
    }
    else error B
}
else error A

试试这个:

if !A {
    error A
    return
}
if !B {
    error B
    return
}
if !C {
    error C
    return
}
do stuff

这样,您就可以保留错误及其各自的条件,并避免深层嵌套。

关于javascript - 关于JS嵌套if语句的更好解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23113722/

相关文章:

if-statement - 以空单元格为键进行电子表格查找

r - 在 R 中如何检查序列是否为 'almost increasing sequence'?

javascript - Angular 2 - 在服务之间共享数据

javascript - 更改parsley.js的默认消息错误 "This value seems to be invalid"

javascript - 如何在 jQuery Ajax 中返回数据?

javascript - 我想更改表单控件类类型的日期格式是日期吗?

javascript - 如何验证 Bootstrap 中的密码字段?

javascript - 从父脚本访问预加载的图像以在子脚本中使用。如何?

c# - 如何修改 KendoUI slider 刻度上的标签?

coding-style - 处理超过 2 个可能的返回值?