Skip to content

Instantly share code, notes, and snippets.

@netsuite
Created April 18, 2013 18:32
Show Gist options
  • Save netsuite/5415107 to your computer and use it in GitHub Desktop.
Save netsuite/5415107 to your computer and use it in GitHub Desktop.
js: is_empty object
// Speed up calls to hasOwnProperty
var hasOwnProperty = Object.prototype.hasOwnProperty;
function is_empty(obj) {
// null and undefined are empty
if (obj == null) return true;
// Assume if it has a length property with a non-zero value
// that that property is correct.
if (obj.length && obj.length > 0) return false;
if (obj.length === 0) return true;
for (var key in obj) {
if (hasOwnProperty.call(obj, key)) return false;
}
return true;
}
// Examples
// console.log(
// is_empty(""), // True
// is_empty([]), // True
// is_empty({}), // True
// is_empty({length: 0, custom_property: []}), // True
// is_empty("Hello"), // False
// is_empty([1,2,3]), // False
// is_empty({test: 1}), // False
// is_empty({length: 3, custom_property: [1,2,3]}) // False
// );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment