首页 > 解决方案 > 检查对象数组中的值匹配

问题描述

我正在尝试使用电子邮件和密码制作一个非常简单的测试登录功能。我创建了 2 个对象并将它们放在一个数组中。

let adminLoginObject = {
    email : "admin",
    password : "1234"
};
let userLoginObject = {
    email : "user",
    password : "1234"
};

let loginArray = new Array(
    adminLoginObject, 
    userLoginObject
);

然后我试图查看表单中的输入是否与对象的值匹配。

我尝试了以下方法:

var emailResult = loginArray.filter(obj => {
    return obj.email === email;
});
var emailR = loginArray.some(x=> x.password === password && x.email == email);

但似乎无论如何,它总是返回 false 或 undefined。

我得到了我的输入值。

const loginForm = document.getElementById('login-form');

const inputs = loginForm.getElementsByTagName("input");
    const password = inputs[1].value;
    const email = inputs[0].value;

我究竟做错了什么?

标签: javascriptauthentication

解决方案


在我的 HTML 表单中,首先是电子邮件,然后是密码。在我的 javascript 中,我先得到密码,然后得到电子邮件。因此,我的过滤器永远不会正确。因此,切换它们,使一切正常。


推荐阅读