Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

149
Views
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; }

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

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; }
about 4 years ago · Juan Pablo Isaza Report

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
about 4 years ago · Juan Pablo Isaza Report

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; }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!