"function" 无法验证数据

Trouble with "function" to verify data

它应该return newsFeed 数组与任何数据库(用户名+密码),但它只适用于第一个用户,即使其他人是正确的。

我会让 link 到 CodePen。感谢大家

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

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);

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

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;
}