-1
How to compare a single item of an object that has 3 spaces or more? I want to make a system that, every time the login is equal to some that is already stored in some object, appears an alert stating that the login is already registered.
//objeto
function User(login, senha) {
this.login = login;
this.senha = senha;
}
lista = new User(3);
//laço para comparação (NÃO SEI SE ESTA CORRETO)
for (var i = 0; i < n; i++) {
lista[i] = new User();
lista[i].login = prompt("Digite o " + (i + 1) + "º usuário para cadastro");
lista[i].senha = prompt("Digite a senha do " + (i + 1) + "º usuário para cadastro");
for (var j = i+1; j < n; j++) {
if (lista[i].login == lista[j].login)) {
alert("Login já cadastrado!");
}
}
}
COMPLETE CODE WITH THE PART THAT IS GIVING ERROR IN COMPARING. FOLLOWS BELOW:
/*ENUNCIADO:
Crie Uma lista de usuários(Login e Senha); Mostrar um alerta todas as vezes que o usuários digitar um login igual.*/
function User(login, senha) {
this.login = login;
this.senha = senha;
}
//ENTRADA DA QUANTIDADE DE CADASTROS QUE DESEJA FAZER
var n = prompt("Entre com quanto usuários você gostaria de cadastrar");
//LAÇOS PARA POSSIVEIS ERROS DE DIGITAÇÃO
if (n >= 'a' && n <= 'z' || n >= 'A' && n <= 'Z') {
alert("ERRO!\nEntre com um número inteiro para o cadastro dos usuários.");
n = 0;
var n = prompt("Entre com quanto usuários você gostaria de cadastrar");
} else if (n == "" || n == " ") {
alert("ERRO!\nO Espaço não pode estar em branco");
n = 0;
var n = prompt("Entre com quanto usuários você gostaria de cadastrar");
}
//CRIAÇÃO DE UM ARRAY PARA UTULIZAR COM O ARMAZENAMENTO DE VALORES
lista = new User(n);
//LAÇO PARA ENTRADA DO LOGIN E SENHA DO CADASTRO
for (var i = 0; i < n; i++) {
lista[i] = new User();
lista[i].login = prompt("Digite o " + (i + 1) + "º usuário para cadastro");
while(lista[i]login ==lista[i].login) {
alert("Login já cadastrado!");
lista[i].login = null;
}
lista[i].senha = prompt("Digite a senha do " + (i + 1) + "º usuário para cadastro");
}
}
Buddy, thanks for the answer. I ran your code here and it all worked out. But there are still some things I could not understand in your code... I will edit my comment and by my complete code, and then explain my doubt.
– Kayo Rodrigo
I put my second code that was being implemented before seeing your answer. The question is why create a list like this
var lista = [];
and not like thislista = new User(n);
and after you get into the loop it’s like thislista[i] = new User();
. My code is running, I just can’t implement the comparison of objects within the for loop. If you can explain your code I would really appreciate it. Hugs, thank you for your attention. Remember: I’m a beginner in Javascript.– Kayo Rodrigo
@Kayorodrigo The User function (login, password) is an object constructor, which as you defined demand as "login" and "password" parameters. You cannot call this function to build a list, it builds objects of the "User" type. If you want to build a list without using var list = [ ], you can also use the list constructor, which already returns the list with the number of elements you want: var list = Array(3). Only by owning the list will you put the objects you create in it.
– user148747