JSFiddle - React, Tailwind, and code Playground

JavaScript

var emptyKeys = [];
function isEmpty(obj, keysArr) {
    for (var key in obj) {
        if (typeof obj[key] === "object" && obj.hasOwnProperty(key)) {
            isEmpty(obj[key], keysArr);
        } else {
            if (obj[key] == "" || obj[key] == null) {
                keysArr.push(key);
            }
        }
    }
}

var Mine = {
    x: "",
    y: 3,
    isEmpty: function(){
        var emptyKeys = [];
        amIEmpty(this, emptyKeys);
        
        return emptyKeys;
        
        //Actual logic
        function amIEmpty(obj, keysArr) {
            for (var key in obj) {
                if (key == "isEmpty") {
                    continue;
                }
                
                if (typeof obj[key] === "object" && obj.hasOwnProperty(key)) {
                    amIEmpty(obj[key], keysArr);
                } else {
                    if (obj[key] == "" || obj[key] == null) {
                        keysArr.push(key);
                    }
                }
            }         
        }
     }
}

var emptyKeys = Mine.isEmpty();
console.log(emptyKeys);