xxxxxxxxxx
obj && Object.keys(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
// 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
function isRealValue(obj)
{
return obj && obj !== 'null' && obj !== 'undefined';
}
//Use isRealValue(obj) to check further, will always return truthy object.
xxxxxxxxxx
if (typeof value !== 'undefined' && value) {
//deal with value'
};