Can someone take a look at this code? Apparently they are not equivalant.
This was my original code which did not behave as I want to. Basically, what I want is to validate the variable only when it is defined. Ignore the logs. They were for debugging. This does not work as expected
let { fullName, email, password } = userInformation;
if(email){
console.log("EMAIL IS DEFINED");
if(!validator.isEmail(email)) {
errors.email = "Please enter a valid email address";
}
}
if(fullName){
console.log("FULLNAME IS DEFINED");
if(validator.isEmpty(fullName)){
errors.fullName = "Fullname is required";
}
}
if(password){
console.log("PASSWORD IS DEFINED");
if(validator.isEmpty(password)){
errors.password = "Password is required";
}
}
This works as expected. Why is it so?
let { fullName, email, password } = userInformation;
if(!email){
console.log("EMAIL IS DEFINED");
if(!validator.isEmail(email)) {
errors.email = "Please enter a valid email address";
}
}
if(!fullName){
console.log("FULLNAME IS DEFINED");
if(validator.isEmpty(fullName)){
errors.fullName = "Fullname is required";
}
}
if(!password){
console.log("PASSWORD IS DEFINED");
if(validator.isEmpty(password)){
errors.password = "Password is required";
}
}
Edit: Basically what i want to happen is to run the validations if the variable is DEFINED. What's currently is that its not validating unless I do like the second example