首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证数据的“函数”有问题

验证数据的“函数”有问题
EN

Stack Overflow用户
提问于 2021-02-11 10:17:58
回答 1查看 14关注 0票数 0

它应该返回包含任何数据库(用户名+密码)的newsFeed数组,但它只对第一个用户起作用,即使其他用户是正确的。

我会让链接到CodePen。感谢所有人

https://codepen.io/kennedyrmenezes/pen/OJbRKay

代码语言:javascript
复制
var database = [
    {
        username: "andrei",
        password: "supersecret"
    },
    {
        username: "sally",
        password: "123"
    },
    {
        username: "ingrid",
        password: "777"
    }   
];

var newsFeed = [
    {
        username: "Bobby",
        timeline: "So tired from all that learning"
    },
    {
        username: "Sally",
        timeline: "JavaScript is sooooooo cool!"
    },
    {
        username: "Mitch",
        timeline: "JavaScript is pretty cool"
    }
];


function isUserValid(username, password) {
    for (var i=0; i < database.length; i++) {
        if(database[i].username === username && 
           database[i].password === password ) {
        return true; 
        }
    return false;
    }   
}



function signIn(username, password) { 

    if (isUserValid(username, password)) {
        console.log(newsFeed);
    } else {
        alert("Sorry, wrong username and password!");
    }
} 

var userNamePrompt = prompt("What's your username?");
var passwordPrompt = prompt("What's your password?");

signIn(userNamePrompt, passwordPrompt);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-11 10:27:05

这是因为您在for循环内部而不是外部返回false。如果i=0迭代失败,那么您将返回false。相反,如果所有迭代都失败,您只想返回false。

代码语言:javascript
复制
function isUserValid(username, password) {
    for (var i=0; i < database.length; i++) {
        if(database[i].username === username && 
           database[i].password === password ) {
        return true; 
        }
    }
    return false;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66147892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档