4 回答

TA贡献1807条经验 获得超9个赞
在代码中,它将在迭代第一个对象后立即返回。使用 它将检查是否有任何对象与通过提示提供的值匹配。如果任何值匹配,则它将返回 true。还用于进行不区分大小写的搜索sometoLowerCase
var database = [{
username: "Jay",
password: "1234"
},
{
username: "Kate",
password: "4567"
},
{
username: "Betty",
password: "789"
}
];
var newsfeed = [{
username: "Jay",
timeline: "happy"
},
{
username: "Kate",
timeline: "sad"
},
{
username: "Mary",
timeline: "boring"
},
{
username: "Betty",
timeline: "peaceful",
}
];
function isUserValid(username, password) {
return database.some(item => item.username.toLowerCase() === username.toLowerCase() && item.password.toLowerCase() === password.toLowerCase());
}
function signIn(username, password) {
if (isUserValid(username, password)) {
console.log(newsfeed);
} else {
alert("sorry, wrong username and password");
}
}
var usernamePrompt = prompt("what is your username");
var passwordPrompt = prompt("what is your password?");
signIn(usernamePrompt, passwordPrompt);

TA贡献1798条经验 获得超3个赞
您可以简化函数的使用。.some
database = [
{ username: "user1", password: "pass1" },
{ username: "user2", password: "pass2" },
{ username: "user3", password: "pass3" },
];
const isUserValid = (username, password) =>
database.some(
({ username: du, password: dp }) => du == username && dp == password
);
function signIn(username, password) {
if (isUserValid(username, password)) {
return "AUTHORIZED";
} else {
return "sorry, wrong username and password";
}
}
console.log(signIn("user", "pass"));
console.log(signIn("user2", "pass2"));
console.log(signIn("user1", "pass"));

TA贡献1841条经验 获得超3个赞
它失败,因为如果用户名/密码不是数据库中的第一个用户名/密码,那么它将不匹配,返回并退出函数。for 循环不会继续查找其他匹配项。您只想在检查了所有可能性后返回。falsefalse
更清楚地分离您的函数,以便它们更容易理解,如下所示:
const usernamePrompt = prompt("what is your username");
const passwordPrompt = prompt("what is your password?");
function isUserValid(username, password) {
for (let i = 0; i < database.length; i++) {
if (database[i].username === username) {
// found the user. return true if the password is right, otherwise false
return database[i].password === password;
}
}
return false; // <-- false if user is never recognized
}
function signIn(username, password) {
if (isUserValid(username, password)) {
console.log(newsfeed);
} else {
alert("sorry, wrong username and password");
}
}
signIn(usernamePrompt, passwordPrompt);
添加回答
举报