我有一个包含用户数据的数组,我需要检查用户名是否已经在数组中,如果是这样,我需要在它后面添加一个数字(user1)。
我能够实现它,但是当有另一个用户具有相同的用户名时,还有另一个 user1。
我需要这个函数来检查数组中是否还有另一个“userxxxx...”,以便添加 user2、user3 等。我尝试使用 .substr() 方法没有运气。
function repeater(user){
for(i = 0, counter= 0; i < usuarios.length; i++){
if(user == usuarios[i].usuario.substr(0)){
counter+= 1;
}
}
return counter;
}
class Usuario
{
constructor(nombre,apellido,usuario,password,rol,activo,cantRecetas)
{
this.nombre = nombre;
this.apellido = apellido;
this.usuario = usuario;
this.password = password;
this.rol = rol;
this.activo = activo;
this.cantRecetas = cantRecetas;
}
}
function precargaUsuarios() {
nuevoUsuario("Pedro", "Pérez", "chef", "chef-01", "chef", true);
nuevoUsuario("Maria", "López", "mlopez", "m-lopez", "colaborador", true);
nuevoUsuario("José", "Rodríguez", "jrodriguez", "j-rodriguez", "colaborador", false);
nuevoUsuario("Mateo", "Bacci", "mbacci", "m-bacci", "colaborador", true);
nuevoUsuario("Juana", "Luppi", "jluppi", "j-luppi", "colaborador", false);
}
function submitUsuario() {
let nombre = $("#nombreNuevoUsuario").val();
let apellido = $("#apellidoNuevoUsuario").val();
let username = (nombre.charAt(0) + apellido).toLowerCase();
let password = (nombre.charAt(0) + '-' + apellido).toLowerCase();
let contador = repeater(username);
if(contador > 0){
username += contador;
}
let rol = "colaborador";
let activo = true;
if (nuevoUsuario(nombre, apellido, username, password, rol, activo)) {
$("#datosNuevoUsuario").html("Nombre de usuario: " + username + "<br> Contraseña: " + password);
$('#modalNuevoUsuario').modal('hide');
$("#confirmacionNuevoUsuario").modal('show');
popularTabla(); //populate
}
else{
let usuarioError = `
<div style="padding: 5px;">
<div id="inner-message" class="alert alert-danger alert-dismissible fade show" >
<button type="button" class="close" data-dismiss="alert">×</button>
Datos inválidos
</div>
</div>
`
$("#error").html(usuarioError);
}
}
function nuevoUsuario(nombre, apellido, username, password, rol, activo) {
let exito = false;
if (validacionUsuario(nombre, apellido, username, password, rol, activo)) {
let usuario = new Usuario(nombre, apellido, username, password, rol, activo);
usuarios.push(usuario);
exito = true;
}
return exito;
}
function validacionUsuario(nombre, apellido) {
let datosValidados = true;
if (nombre.length <= 1 || nombre.length > 50) { //Valido que los campos no estén vacíos
datosValidados = false;
}
if (apellido.length <= 1 || apellido.length > 50) { // y que no superen los 50 caracteres
datosValidados = false;
}
return datosValidados;
}