如何解决如何选择在提取请求中接收的所有数据并检查每个项目
我将登录名和密码数据作为对象[ { “ id”:“ 1”, “ login”:“ admin”, “密码”:“管理员” }, { “ id”:“ 2”, “ login”:“ abc”, “ password”:“ nmp”, }, { “ id”:“ 3”, “ login”:“ hjjk”, “ password”:“ sddr”, } ] 现在我只检查第一个对象
async function authWithLoginAndPassword() {
const response = await fetch('');
const data = await response.json();
const logUser = data[0].login;
const passwordUser = data[0].password;
return { logUser,passwordUser }
}
submit.addEventListener('click',async ()=> {
try {
...
let register = await authWithLoginAndPassword();
if(loginUser !== register.logUser) {
...
}
if(loginUser === register.logUser) {
...
}
if(password !== register.passwordUser) {
...
}
if(password === register.passwordUser) {
...
}
if(loginUser === register.logUser && password === register.passwordUser) {
...
}
} ...
})
如何检查另一个用户名和密码的功能?以及如何编写带有错误的if语句,例如,如果登录名不匹配,则div出现错误,表明登录名不正确且边框变为红色。并与密码类似,但是在那里出现另一个div。如果要使用过滤器
解决方法
您可以使用
data.forEach(row => {
console.log(row); // do the matching here
})
或类似的过滤器数组
const loggedUser = data.filter(value => { return value.login === loginUser && password === value.password})[0];
您可以更新authWithLoginAndPassword
async function authWithLoginAndPassword() {
const response = await fetch('');
const data = await response.json();
return data;
}
,
您可以使用数组过滤器功能。 (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)
async function getUsers() {
const response = await fetch('');
const users = await response.json();
return users;
}
submit.addEventListener('click',async ()=> {
try {
const users = await getUsers();
const authenticatedUser = users.filter(user => {
return user.login === loginUser && user.password === password;
})[0]; // 0 index returns first found user with matching properties.
if (authenticatedUser) {
// authenticated
} else {
// not authenticated
}
} catch(e) {
}
});
现在authenticatedUser是与loginUser的登录名和密码属性匹配的用户对象,或者是未定义的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。