Efter en AJAX-forespørgsel kan min applikation nogle gange returnere et tomt objekt, som f.eks:
var a = {};
Hvordan kan jeg kontrollere, om det er tilfældet?
Der er ingen nem måde at gøre dette på. Du er nødt til at køre en eksplicit sløjfe over egenskaberne:
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
Hvis ECMAScript 5 support er tilgængelig, kan du bruge Object.keys()
i stedet:
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
F.eks:
var a = {empty:true};
Derefter kan du nemt kontrollere det i din AJAX callback-kode.
En anden måde at kontrollere det på:
Hvis (a.toSource() === "({})") // så er 'a' tom
EDIT: Hvis du bruger et JSON-bibliotek (f.eks. JSON.js), kan du prøve JSON.encode()-funktionen og teste resultatet i forhold til en tom værdistreng.