Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie kann man in der for-Traversal-Schleife dafür sorgen, dass die Ergebniswarnung nach else nur einmal angezeigt wird?

In einem for循环中当不满足之前的两个if条件时,则弹出alert提示框,由于做了遍历查询,所以alert wird es entsprechend der Anzahl der Arrays mehrmals angezeigt. Bitte sagen Sie mir, wie ich dies abschneiden kann, damit es nach der Beurteilung nur einmal angezeigt wird.

$(function(){
    var jsons = [
            {"id":"621234","info":"内容一"},
            {"id":"62123456","info":"内容二"},
            {"id":"624321","info":"内容三"},
    ]

    function f(jsons,num) {
        var num8 = num.substr(0,8);
        var num6 = num.substr(0,6);
        var result6 = '';
        var result8 = '';
          for(var i = 0,len = jsons.length; i < len;i++) {
              var id = jsons[i].id;
              if(id == num8) {
                  result8 = jsons[i].info.toString();
                  $("#card_info").fadeIn("500");
                  $("#close").fadeIn("500");
                  break;
              }
              if(id == num6) {
                  result6 = jsons[i].info.toString();
                  $("#card_info").fadeIn("500");
                  $("#close").fadeIn("500");
              }
              else{
                alert("不符合条件");
              }
           }
          return result8 ? result8 : result6;
    }

    $("#down").click(function(){
      var user_info = $("#txt").val();
      var table = document.getElementById("card_info");
      table.innerHTML=(f(jsons, user_info));
    })

});

Wenn Sie derzeit so schreiben, wird das Popup-Fenster entsprechend der Anzahl der JSON-Daten dreimal angezeigt. . .

黄舟黄舟2710 Tage vor1013

Antworte allen(3)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-05-19 10:42:28

    function f(jsons, num) {
        var num8 = num.substr(0, 8);
        var num6 = num.substr(0, 6);
        var result = '';
        var inArr = 0;
        for (var i = 0, len = jsons.length; i < len; i++) {
            var id = jsons[i].id;
            if (id == num8) {
                result8 = jsons[i].info.toString();
                $("#card_info").fadeIn("500");
                $("#close").fadeIn("500");
                inArr++;
                break;
            }
            if (id == num6) {
                result6 = jsons[i].info.toString();
                $("#card_info").fadeIn("500");
                $("#close").fadeIn("500");
                inArr++;
            }
        }
        !inArr && alert("不符合条件");
        return result8 ? result8 : result6;
    }

    Antwort
    0
  • 黄舟

    黄舟2017-05-19 10:42:28

    else if()

    Antwort
    0
  • PHP中文网

    PHP中文网2017-05-19 10:42:28

    放在for循环外面,当result8和result6的值都为空的时候才alert。
    为什么id==6时不break;?

    Antwort
    0
  • StornierenAntwort