code: function nestedEmptyCheck(obj) {
  
      if(obj === "null") {
          return true;
      }
  
      else if(typeof obj === "boolean"){
          return false;
      }
  
      else if(typeof obj === "number"){
          return false;
      }
  
      else if((typeof obj === "string") && obj.trim() != ''){
          return false;
      } else if((typeof obj === "string") && obj.trim() === ''){
          return true;
      }
  
      else if(Array.isArray(obj)){
          if(obj.length === 0) {
              return true;
          } else {
              for(var i = 0; i < obj.length; i++) {
                  obj[i] = nestedEmptyCheck(obj[i]);
              }
              return obj;
          }
      }
  
      else if(typeof obj === "object"){
          var primaryKeys = Object.keys(obj);
          if(primaryKeys && primaryKeys.length === 0) {
              return true;
          } else {
              primaryKeys.forEach(key => {
                  var value = nestedEmptyCheck(obj[key]);
              obj[key] = value;
          });
              return obj;
          }
      }
      return obj;
  }
docs: Checks the given object (recursively if needed) and
  returns the object with its associated binary value for
  isEmpty evaluation
  @param obj
  @returns {*}