繁体   English   中英

如何在JavaScript中为if语句创建数组或变量?

[英]How can I make an array or variable for an if statement in javascript?

我正在尝试使用if语句和输入值创建登录系统,我想知道是否可以创建诸如数组,变量或对象之类的方法,以便可以将所有密码和用户名放入其中,也可以轻松添加新的。 我实际上并没有将其用于网站; 这只是一个项目。 谢谢。

$(document).ready(function(){
    $('.login').click(function(){
        var userResult = $('input[name=userInput]').val();
        var passResult = $('input[name=passInput]').val();
        if(userResult === "CodeAcademy" && passResult === "fun-coding" || userResult === "User_Example" && passResult === "Pass_Example")
        {
          //Some stuff that will happen
        }
    });
});

FYI userInputpassInput是用户将其用户名和密码放入的输入框。

通过使用查找表对象将许多登录名和密码存储在一个简单的小数据结构中,可以避免冗长的逻辑链,数组迭代,多余的字符串引号和缓慢的搜索:

$(document).ready(function(){
    $('.login').click(function(){
        var userResult = $('input[name=userInput]').val();
        var passResult = $('input[name=passInput]').val();
        if({  // username     password
               CodeAcademy:  "fun-coding", 
               User_Example: "Pass_Example",
               "User with space": "sOmeP@ssw0rd",
        }[  userResult  ] === passResult ){ // user valid and password match?
            alert("authenticated"); //Some stuff that will happen
        }//end if valid user?
    });
});

您可以使用单独的表单创建登录对象数组,并使用grep搜索该数组以查看是否存在匹配的用户。 这是演示https://jsfiddle.net/f4aqmt4e/

以下是代码和说明:

var myLogins = [];//this might be object that you store the login information

//lets say when a new user registers you keep record of their login information in myLogins
//first create the login information
var myLogin = new Object();
myLogin.Username = "myusername";
myLogin.Password= "12345";

//then add the login information to the login-store array
myLogins.push(myLogin);


 $('.login').click(function(){
    var userResult = $('input[name=userInput]').val();
    var passResult = $('input[name=passInput]').val();

    //grep will help you to find a certain element within an array based on a condition
    //we will use grep to see if there a matching login info
    var loginresult = $.grep(myLogins, function(e){ return e.Username == userResult  && e.Password == passResult ; });

    if(loginresult.lenght)
    {
       //login successful
    }else {
       //login failed
    }   
 });

尝试利用Array.prototype.every()

 $(document).ready(function() { var vals = [ ["CodeAcademy", "User_Example"], ["fun-coding", "Pass_Example"] ]; $(".login").click(function() { var res = $("._login").toArray().every(function(el, i) { return i === 0 ? $.inArray(el.value, vals[i]) !== -1 // name : $.inArray(el.value, vals[i]) !== -1 // pass }); if (res) { // do stuff alert("login successful") }; }); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"> </script> <input name="userInput" type="text" class="_login" /> <input name="passInput" type="text" class="_login" /> <input type="button" class="login" value="login" /> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM