javascript isEmpty
by Eric Miller
JavaScript
function isEmpty(obj) {
var empty = false;
if (obj === null) {
empty = true;
} else if (typeof (obj) === 'undefined') {
empty = true;
} else if(typeof(obj) === 'string' && obj.trim().length === 0){
empty = true;
} else if(Array.isArray(obj) && obj.length === 0){
empty = true;
} else if(typeof(obj) === 'object'){
if(Object.getOwnPropertyNames(obj).length === 0){
empty = true;
} else {
var propsEmpty = true;
for (var key in obj) {
if(!isEmpty(obj[key])){
propsEmpty = false;
break;
}
}
empty = propsEmpty;
}
}
return empty;
}
var undefinedVar;
console.log('tests', {
null_true: isEmpty(null),
undefined_true: isEmpty(undefinedVar),
string_true: isEmpty(''),
string_false: isEmpty('foo'),
stringSpace_true: isEmpty(' '),
array_true: isEmpty([]),
array_false: isEmpty(['a', 'b', 'c']),
object_true: isEmpty({}),
object_false: isEmpty({foo:'bar'}),
objectProp_true: isEmpty({foo:'', bar:[], me:{}}),
objectProp_false: isEmpty({foo:'', bar:['a'], me:{}}),
number_false: isEmpty(0)
});