【问题标题】:for loop not looping through my array of objects JSfor循环没有循环通过我的对象数组JS
【发布时间】:2021-09-21 03:20:50
【问题描述】:

我正在尝试遍历下面的对象数组。我创建了一个函数来循环遍历它,如果数据库中存在用户名和密码,则返回 true,否则返回 false。但是,无论用户名和密码是否存在,它总是返回false。

它可能有什么问题?任何提示都会非常有帮助!

const dataBase =[
        {
            username:'cristiano',
            password:'hattrick'
        },
        {
            username:'cierra',
            password:'lapuerta'
        },
        {
            username:'carlos',
            password:'elpollo'
        }
    ];

function checkDataBase(userName, passWord){
    for (let i=0; i < dataBase.length; i++){
        if (dataBase[i].username === userName && dataBase[i].passWord === passWord){
            return true;
        }
    }
    return false;
}

【问题讨论】:

    标签: javascript arrays for-loop object


    【解决方案1】:

    此检查不好,因为您的用户对象具有“密码”属性,但在 if 语句中您试图访问不存在的“密码”属性。

    if (dataBase[i].username === userName && dataBase[i].passWord === passWord)
    

    大写在 javascript 中很重要。

    【讨论】:

    • 谢谢,这对您很有帮助。
    【解决方案2】:

    只需检查变量的大小写。这个测试会起作用。

    if (dataBase[i].username === userName && dataBase[i].password === passWord){
    

    我建议您在项目或 IDE 中使用 eslint 和 typescript。他会在执行前为你指出错误。

    【讨论】:

    • 感谢您的关注和建议。我正在学习打字稿。
    【解决方案3】:

    你需要把 w 写成小写

    【讨论】:

    • 哇!那会做到的!非常感谢,我花了几个小时试图弄清楚。我只需要一双新的眼睛!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-09
    • 2020-02-29
    • 2015-05-21
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多