lunes, 6 de septiembre de 2021

Javascript: Comprobar si un objeto está vacio.

¿Cómo saber si un objeto en Javascript está vacio o no?

En Python, por ejemplo, la evaluación de un diccionario o lista  que estén vacios (sin contenido), retornará un valor falso.

bool({}) # Retornará False.
bool([]) # Retornará False.

Pero en Javascript es diferente. La evaluación siguiente retornará un valor verdadero, aunque el objeto esté vacio:

// Creamos un objeto y su contenido.
var obj1 = {nombre"limón"color"verde"}

// Creamos un objeto vacio.
var obj2 = {}

// Confirmamos la existencia del objeto 1, y es verdadera.
if (obj1) {
  console.log("El objeto 1 existe, y tiene contenido.");
}

// Confirmamos la existencia del objeto 2, y también es verdadera.
if (obj2) {
  console.log("El objeto 2 también existe, pero está vacio.")
}

La ejecución del código anterior producirá la siguiente salida:

[LOG]: "El objeto 1 existe, y tiene contenido." 

[LOG]: "El objeto 2 también existe, pero está vacio." 

Pero lo que necesitamos es comprobar si un objeto está o no vacio. La siguiente función te podrá ayudar, incluso sin saber si el "objeto" a evaluar es realmente un objeto, porque lo que necesitas saber es:

  1. Si es un objeto.
  2. Si tiene valor.

/**
 * Confirma si un objeto existe y tiene valor.
 * @param obj Objeto a evaluar. Puede ser cualquier tipo.
 * @returns Retorna true si el objeto existe y no está vacio, false todo lo contrario.
 */
function isObject(obj) {
    if (obj == undefined || !obj) {
        return false;
    }
    try {
        if (Object.keys(obj).length) {
            return true;
        }
        else {
            return false;
        }
    }
    catch (error) {
        return false;
    }
}

No hay comentarios.:

Publicar un comentario