Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

299
Visualizações
If else y cambia la alternativa de mayúsculas y minúsculas en Javascript

Buscando una alternativa a la declaración condicional. Como puede ver en mi código, el proceso es demasiado repetitivo y desorganizado. Será cada vez más difícil mantener el código a medida que crece en tamaño. Para evitar esta situación, estoy buscando alternativas.

 function validate(values) { let errors = {}; // Email Error if (!values.email) { errors.email = "Email address is required"; } else if (!/\S+@\S+\.\S+/.test(values.email)) { errors.email = "Email address is invalid"; } // Password Error if (!values.password) { errors.password = "Password is required"; } else if (values.password.length < 6) { errors.password = "Password must be 6 or more characters"; } return errors; }

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Podría mover algo de lógica a la configuración. Intente armonizar las comprobaciones de modo que todas dependan de expresiones regulares. Entonces, para una longitud mínima de 6, use /....../ como expresión regular. También asegúrese de que la expresión regular no acepte una cadena vacía en caso de que el campo se considere obligatorio.

Por ejemplo:

 // All specifics are encoded here: const checks = [ { field: "email", regex: /^\S+@\S+\.\S+$/, name: "Email address", msg: "must be 6 or more characters" }, { field: "password", regex: /....../, name: "Password", msg: "is invalid" }, ]; // ...while this is now (more) generic: function validate(values) { const errors = {}; for (const {field, regex, name, msg} of checks) { if (!regex.test(values[field])) { errors[field] = name + " " + (values[field] ? msg : "is required"); } } return errors; }
over 4 years ago · Santiago Trujillo Relatório

0

En este momento, la función de validación se usa tanto para contraseñas como para correos electrónicos.

Sin embargo, esto se puede dividir en dos funciones, una para validar correos electrónicos y otra para validar contraseñas. Esto ayuda a desvincular la acción de validar correos electrónicos de validar contraseñas y facilita la depuración/mantenimiento.

Además, puede probar operadores ternarios si desea que sus cláusulas if-else estén menos desordenadas.

 function validate(values) { errors = {}; errors.email = validate_email(values.email) == null ? null : validate_email(values.email); errors.password = validate_password(values.password) == null ? null : validate_password(values.password); return errors; } function validate_email(email) { if (email == null) { return "Email address is required"; } else if (!/\S+@\S+\.\S+/.test(values.email)) { return "Email address is invalid"; } return null; } //validate_password left as an exercise
over 4 years ago · Santiago Trujillo Relatório

0

Puede acceder a la columna en un objeto js usando myObject[nameOfYourColumn]

Entonces podemos pensar en construir un método genérico como este

 function validateColumn(object, columnName, format, errors) { if (!object[columnName]) { errors[columnName] = `${columnName} is required`; } else if (!format.test(object[columnName])) { errors[columnName] = `${columnName} is invalid`; } }

tu método se convertirá

 function validate(values) { let errors = {}; // Email Error validateColumn(values, 'email', '/\S+@\S+\.\S+/', errors); // Password Error validateColumn(values, 'password', '/^.{6,}$/', errors); return errors; }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda