const isEmpty = (x) => {
if (Array.isArray(x) || typeof x === "string" || x instanceof String) {
return x.length === 0;
}
if (x instanceof Map || x instanceof Set) {
return x.size === 0;
}
if ({}.toString.call(x) === "[object Object]") {
return Object.keys(x).length === 0;
}
if (!isNaN(parseFloat(x)) && isFinite(x)) {
return false;
}
return !x;
};
console.log(isEmpty(null));
console.log(isEmpty(undefined));
console.log(isEmpty([]));
console.log(isEmpty({}));
console.log(isEmpty(""));
console.log(isEmpty(new Set()));
console.log(isEmpty(0));