xxxxxxxxxx
const isEmpty = obj => Reflect.ownKeys(obj).length === 0 && obj.constructor === Object;
xxxxxxxxxx
const empty = {};
/* -------------------------
Plain JS for Newer Browser
----------------------------*/
Object.keys(empty).length === 0 && empty.constructor === Object
// true
/* -------------------------
Lodash for Older Browser
----------------------------*/
_.isEmpty(empty)
// true
xxxxxxxxxx
const empty = {};
/* -------------------------
Plain JS for Newer Browser
----------------------------*/
Object.keys(empty).length === 0 && empty.constructor === Object
// true
/* -------------------------
Lodash for Older Browser
----------------------------*/
_.isEmpty(empty)
// true
xxxxxxxxxx
// ECMA 5+
// because Object.keys(new Date()).length === 0;
// we have to do some additional check
obj // 👈 null and undefined check
&& Object.keys(obj).length === 0
&& Object.getPrototypeOf(obj) === Object.prototype
// Note, though, that this creates an unnecessary array (the return value of keys).
xxxxxxxxxx
const emptyObject = {
}
// Using keys method of Object class
let isObjectEmpty = (object) => {
return Object.keys(object).length === 0;
}
console.log(isObjectEmpty(emptyObject)); // true
// Using stringify metod of JSON class
isObjectEmpty = (object) => {
return JSON.stringify(object) === "{}";
}
console.log(isObjectEmpty(emptyObject)); // true
xxxxxxxxxx
if(
objectName // Verify object presence
&& Object.keys(objectName).length === 0 // Verify object content
&& Object.getPrototypeOf(objectName) === Object.prototype // Verify object type
) {
// Run truthy condition.
}