Skip to content

Instantly share code, notes, and snippets.

@piecioshka
Last active March 11, 2019 11:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save piecioshka/6008030 to your computer and use it in GitHub Desktop.
Save piecioshka/6008030 to your computer and use it in GitHub Desktop.
[empty objects] #JavaScript
/**
* TEST DATA
*/
var testData = [{}, {a:1}, new RegExp(), [], Object.create(null), [undefined]];
/**
* Check if param is Object?
* @param {*} o Checks value.
* @return {boolean}
*/
var isObject = function(o) {
return o === Object(o);
};
/**
* Check if param is Array?
* @param {*} o Checks value.
* @return {boolean}
*/
var isArray = Array.isArray || function(o) {
return ({}).toString.call(o) == '[object Array]';
};
/**
* Check if param is EmptyObject?
* @param {*} o Checks value.
* @return {boolean}
*/
var isEmptyObject = function (o) {
if (!isObject(o) || isArray(o)) return false;
return Object.keys ? !Object.keys(o).length : (function (o) {
for (var k in o) if (o.hasOwnProperty(k)) return false;
return true;
})(o)
};
/**
* RUN TESTS
*/
testData.forEach(function (item) {
console.log(isEmptyObject(item));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment