¿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:
- Si es un objeto.
- 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