jim*_*bob 2 javascript arrays for-loop
我正在制作一个登录/注册表单作为一个小型个人项目,但遇到了一些小问题。
所有新用户都存储在本地存储中。
当用户登录时,我想从本地存储中检索所有用户并遍历它们以查看登录详细信息是否与用户注册详细信息匹配。
我基本上已经创建了代码,只是无法使if/else语句正常工作。true如果值为 ,则返回true,但会继续循环并返回false不是 的值true。
如何让循环停止在第一个true值?
这是我的代码:
// gather information and loop through users array
document.querySelector("#login").addEventListener("click", function(e)
{
// login details gathered from user
var logId = document.getElementById("logId").value;
var logPass = document.getElementById("logPass").value;
// get all the users from local stroage and loop through
var allUsers = JSON.parse(localStorage.getItem("users"));
allUsers.forEach(function(user) {
if (user.userId === logId && user.userPassword === logPass) {
console.log("true");
} else {
console.log("fasle");
}
});
// prevent form from submitting
e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
我会推荐使用.some. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some
true如果任何用户符合您的要求,这将返回false
let isUserMatched = allUsers.some(function(user) {
return user.userId === logId && user.userPassword === logPass)
});
if(isUserMatched){
// do something
}
Run Code Online (Sandbox Code Playgroud)