Javascript 如何验证数组中的对象?

Javascript 如何验证数组中的对象?,javascript,arrays,node.js,object,Javascript,Arrays,Node.js,Object,我试图在明文中创建和存储用户名和密码。我没有做任何类型的身份验证(我知道我可以使用NodePassport来做这件事,并进行加密,但我只是在学习javascript,所以我只是在尝试玩) 我有一个全局定义如下的对象: var obj= {username: req.body.username, password: req.body.password} 我正在推进我的registeredUsers阵列: var registeredUsers = new Array();

我试图在明文中创建和存储用户名和密码。我没有做任何类型的身份验证(我知道我可以使用NodePassport来做这件事,并进行加密,但我只是在学习javascript,所以我只是在尝试玩)

我有一个全局定义如下的对象:

var obj= {username: req.body.username,
          password: req.body.password}
我正在推进我的registeredUsers阵列:

var registeredUsers = new Array();
我的问题是,我希望能够做到以下几点:

   if((($.inArray(username, registerdUsers) == username && 
($.inArray(password, registerdUsers)) == password){     
    res.redirect("/?error=Already Registered"); 
    }
这不起作用,如何检查对象的两个值以查看它们是否包含在数组中

以下是我正在进行身份验证的功能,以防有人好奇:

function ensureAuthentication(req, res, next){
    //push object onto the registeredUsers array
    registeredUsers.push(obj);
    //if the user is already registered, throw error
    if (($.inArray(username, registeredUsers) && ($.inArray(password, registeredUsers)) {//obj.contains() username){
        res.redirect("/?error=Already Registered"); 
    }
    //if new user
    else{
        authentication.push(obj);
        console.log("added new user);
        //redirect to homepage
        res.rediret("/");
    }
}


按用户名查找对象:

var user;

for(var i = 0; user = registeredUsers[i]; i++) {
    if(user.username === username)
        break;
}
检查密码:

var valid = user && user.password === password;

$.inArray类似于Java的indexOf函数,如果obj在数组中,则返回位置的索引,否则返回-1

比如说

if((($.inArray(username, registerdUsers) !== -1 && 
($.inArray(password, registerdUsers)) !== -1){     
    res.redirect("/?error=Already Registered"); 
}
if($.inArray(username, registeredUsers) !== -1){     
    res.redirect("/?error=Already Registered"); 
}
…将检查以确保您没有任何密码完全相同的重复用户,但允许重复用户

我想你是在找像

if((($.inArray(username, registerdUsers) !== -1 && 
($.inArray(password, registerdUsers)) !== -1){     
    res.redirect("/?error=Already Registered"); 
}
if($.inArray(username, registeredUsers) !== -1){     
    res.redirect("/?error=Already Registered"); 
}

也就是说,如果用户名存在于registeredUsers数组中,则给出错误消息“已注册”

inArray
返回一个数字,这应该做什么
$。inArray(username,registerdUsers)==username
这是什么
$
东西?@minitech,我怀疑是lodash或下划线,我想看看输入的密码是否是函数
login
中用户名的正确密码,特别是
req.session.username=username用户名和密码在哪里定义?我应该声明我使用的是服务器端javascript,而不是客户端,所以我不能使用$notation。。。但它确实帮助我更好地理解,谢谢!