In Javascript, How to determine if an object property exists and is not empty?

To precisely answer your question (exists and not empty), and assuming you're not referring to empty arrays, you could use

typeof errors.error_1 === 'string' && errors.error_1.length

Here is a another good answer I found and wanted to share (after modification to fit my needs):

if ("property_name" in object_name && object_name.property_name !== undefined){
   // code..
}

So if I wanted to apply this on my example, it will look like:

if ("error_1" in errors && errors.error_1 !== undefined){
   // code..
}

if (errors.hasOwnProperty('error_1') && errors['error_1'] )

The method hasOwnProperty can be used to determine whether an object has the specified property as a direct property of that object.

The errors[key] where key is a string value checks if the value exists and is not null

to Check if its not empty where it is a string then typeof errors['error_1'] === 'string' && errors['error_1'].length where you are checking for the length of a string

Result:

if (errors.hasOwnProperty('error_1') && typeof errors['error_1'] === 'string' && errors['error_1'].length)

Now, if you are using a library like underscore you can use a bunch of utility classes like _.isEmpty _.has(obj,key) and _.isString()

Tags:

Javascript