它应该返回包含任何数据库(用户名+密码)的newsFeed数组,但它只对第一个用户起作用,即使其他用户是正确的。
我会让链接到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);发布于 2021-02-11 10:27:05
这是因为您在for循环内部而不是外部返回false。如果i=0迭代失败,那么您将返回false。相反,如果所有迭代都失败,您只想返回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;
}https://stackoverflow.com/questions/66147892
复制相似问题