Μετά από μια αίτηση AJAX, μερικές φορές η εφαρμογή μου μπορεί να επιστρέψει ένα κενό αντικείμενο, όπως:
var a = {};
Πώς μπορώ να ελέγξω αν συμβαίνει αυτό;
Δεν υπάρχει εύκολος τρόπος για να γίνει αυτό. Θα πρέπει να κάνετε βρόχο στις ιδιότητες ρητά:
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
Εάν υπάρχει υποστήριξη του ECMAScript 5, μπορείτε να χρησιμοποιήσετε την Object.keys()
αντί γι' αυτό:
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
Για παράδειγμα:
var a = {empty:true},
Στη συνέχεια, μπορείτε εύκολα να το ελέγξετε στον κώδικα επανάκλησης AJAX.
Ένας άλλος τρόπος για να το ελέγξετε:
"({})") // then 'a' is empty
EDIT: Εάν χρησιμοποιείτε οποιαδήποτε βιβλιοθήκη JSON (π.χ. JSON.js), τότε μπορείτε να δοκιμάσετε τη συνάρτηση JSON.encode() και να ελέγξετε το αποτέλεσμα έναντι κενής συμβολοσειράς τιμών.
function isEmpty(obj) {
for(var i in obj) { return false; }
return true;
}