Después de una petición AJAX, a veces mi aplicación puede devolver un objeto vacío, como:
var a = {};
¿Cómo puedo comprobar si ese es el caso?
No hay una manera fácil de hacer esto. Tendrás que hacer un bucle sobre las propiedades explícitamente:
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
Si está disponible el soporte de ECMAScript 5, puede utilizar Object.keys()
en su lugar:
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
Por ejemplo:
var a = {empty:true};
Entonces puedes comprobarlo fácilmente en tu código de devolución de llamada AJAX.
Otra forma de comprobarlo:
if (a.toSource() === "({})") // entonces 'a' está vacío
EDIT: Si usas cualquier librería JSON (por ejemplo, JSON.js) entonces puedes probar la función JSON.encode() y comprobar el resultado contra una cadena de valores vacía.