Typescript 检测阵列中的重复电子邮件地址

Typescript 检测阵列中的重复电子邮件地址,typescript,Typescript,因此,我有以下问题,我不知道如何解决它。我必须用一个html输入表单在typescript中编写一个usermanager,这非常有效,但唯一不起作用的是电子邮件检查,以检测某个电子邮件地址是否已被某人使用,并且用户必须使用另一个电子邮件地址进行注册。 类用户(名称、电子邮件、密码)保存在数组userlist中。我已经试着用for循环检查数组,但这行不通 form.addEventListener("submit", (event: Event) => {

因此,我有以下问题,我不知道如何解决它。我必须用一个html输入表单在typescript中编写一个usermanager,这非常有效,但唯一不起作用的是电子邮件检查,以检测某个电子邮件地址是否已被某人使用,并且用户必须使用另一个电子邮件地址进行注册。 类用户(名称、电子邮件、密码)保存在数组userlist中。我已经试着用for循环检查数组,但这行不通

    form.addEventListener("submit", (event: Event) => {

    event.preventDefault();

    vorname = (document.getElementById("fname") as HTMLInputElement).value;
    nachname = (document.getElementById("lname") as HTMLInputElement).value;
    email = (document.getElementById("email") as HTMLInputElement).value;
    passwort = (document.getElementById("passwort") as HTMLInputElement).value;
    let passwortcheck: string = (document.getElementById("passwortcheck") as HTMLInputElement).value;

    let user: User = new User();

    user.vorname = vorname;
    user.nachname = nachname;
    user.email = email;
    user.passwort = passwort;
    passwortalt = user.passwort;

    for (let i: number = 0; i <= userlist.length; i++) {
        if (user.passwort === passwortcheck && user.email != userlist[i].email) {
            userlist.push(user);
            form.reset();
            renderUserlist();
        } else {
            alert("Passwörter stimmen nicht überein");
        }
    }
});
form.addEventListener(“提交”,事件:事件)=>{
event.preventDefault();
vorname=(document.getElementById(“fname”)作为HTMLInputElement);
nachname=(document.getElementById(“lname”)作为HTMLInputElement);
email=(document.getElementById(“email”)作为HTMLInputElement)。值;
passwort=(document.getElementById(“passwort”)作为HTMLInputElement);
让passwortcheck:string=(document.getElementById(“passwortcheck”)作为HTMLInputElement.value;
let user:user=new user();
user.vorname=vorname;
user.nachname=nachname;
user.email=电子邮件;
user.passwort=passwort;
passwortalt=user.passwort;

例如(假设i:number=0;i所以我自己解决了这个问题…:)

for(设i:number=0;i
您可以使用JavaScript数组的
some
方法来简化此过程

const emailAlreadyTaken: boolean = userlist.some((value: User) => value.email === user.email);

在本文的第一部分,如果是“重复密码”检查。这很有效,但一旦我添加用于检查电子邮件的for循环,它就会停止工作尝试使用user.email!==userlist[I]。email而不是&&user.email!=userlist[I].Email不起作用…您有任何错误吗?请共享一个codesandbox链接好吗?希望我做对了谢谢,这也起作用:)
const emailAlreadyTaken: boolean = userlist.some((value: User) => value.email === user.email);