通过用户列表在javascript中循环

通过用户列表在javascript中循环,javascript,html,authentication,frontend,Javascript,Html,Authentication,Frontend,我有一个存储在数组中的用户列表 accountsade:[ { 识别号:0.4387810413935975 姓名:“阿德里安” 密码:“345” 用户名:“纳撒尼尔” }, { 识别号:0.2722524232951682 姓名:“内森” 密码:“123” 用户名:“NathaneAlmbale45” } ], 我想循环浏览用户列表并捕获值password,和username 数组中的每个对象,并将其与现有变量进行比较 usernameL = "nathanaelmbale45&q

我有一个存储在数组中的用户列表

accountsade:[
{
识别号:0.4387810413935975
姓名:“阿德里安”
密码:“345”
用户名:“纳撒尼尔”
},
{
识别号:0.2722524232951682
姓名:“内森”
密码:“123”
用户名:“NathaneAlmbale45”
}
],
我想循环浏览用户列表并捕获值
password
,和
username
数组中的每个对象,并将其与现有变量进行比较

usernameL = "nathanaelmbale45"
passwordL = "123"
  • 要捕获,只需映射数组并返回所需字段
  • objectArrap.map(object=>({object.property,object.property2}))


    要进行比较,可以使用类似的方法,称为filter和find。如果你需要做一些专门的事情,考虑使用ObjutsRay.Frace

    >P>在评论中提到的每一个对象,在客户端代码中这样做会是个坏主意,因为你把所有用户名和密码都暴露在浏览器控制台上很容易找到的东西……/P>
        <script>
        let accountsade = [
            {
                id: 0.4387810413935975,
                name: "Adrian",
                password: "345",
                userName: "nathanael",
            },
            {
                id: 0.2722524232951682,
                name: "Nathan",
                password: "123",
                userName: "nathanaelmbale45"
            }
        ]
        let userName = 'nathanael', password = '345';
        let account = accountsade.filter((item) => {
            return item.userName === userName && item.password == password;
        });
        console.log(account);
    </script>
    
    但是为了理解数组函数。。。这将根据匹配的用户名和密码返回数组中的第一个匹配对象

    var accountsade=[
    {
    识别号:0.4387810413935975,
    姓名:“阿德里安”,
    密码:“345”,
    用户名:“纳撒尼尔”
    },
    {
    识别号:0.2722524232951682,
    姓名:“内森”,
    密码:“123”,
    用户名:“NathaneAlmbale45”
    }
    ];
    var usernameL=“NathanealBale45”;
    var passwordL=“123”;
    ///////////////////////////////////////////////////////////////////
    //array.find将运行的函数作为其argument
    //针对数组的每个元素
    //
    //array.find将返回当前提供的元素
    //提供的函数第一次返回“true”值时
    //
    //如果提供的函数总是返回“false”值。。。
    //然后array.find将返回值“undefined”
    ///////////////////////////////////////////////////////////////////
    var authUser=accountsade.find(函数(元素){
    var返回值=真;
    returnValue&=element.userName==usernameL;
    returnValue&=element.password==passwordL;
    返回值
    });
    
    console.log(authUser)首先:像这样对用户进行身份验证是不安全的。我马上告诉你为什么,但让我们先解决你的实际问题

    可以使用JavaScript函数获取列表中的正确对象。然后,您可以检查该对象的密码是否与输入匹配:

    const json={
    会计准则:[
    {
    识别号:0.4387810413935975,
    姓名:“阿德里安”,
    密码:“345”,
    用户名:“纳撒尼尔”
    },
    {
    识别号:0.2722524232951682,
    姓名:“内森”,
    密码:“123”,
    用户名:“NathaneAlmbale45”
    }
    ]
    };
    const usernameL=“NathaneAlmbale45”;
    const passwordL=“123”;
    警报(checkLogin(usernameL,passwordL));
    功能检查登录(用户名、密码){
    const account=json.accountsade.find(account=>{
    return account.userName=用户名;
    });
    返回account.password==密码;
    
    }
    对前端进行身份验证肯定不是一个好主意。通过使用开发工具,任何人都可以访问每个用户名和密码。密码必须散列,而不是以纯文本形式存储,这也是安全的基本原则。显然,您需要对代码进行一些解释。但是我还是要向上投票。当然,如果要从数组中筛选记录,而不是使用for循环,最好的方法是使用.filter函数,有关详细信息,请打开以下链接好主意。但我想说的是,你应该在你的解决方案中添加该解释。是的,当然,我会继续添加解释,谢谢!
    [{"id":0.4387810413935975,"name":"Adrian","password":"345","userName":"nathanael"}]