След заявка 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.
Друг начин да го проверите:
if (a.toSource() === "({})") // тогава 'a' е празен
EDIT: Ако използвате някоя библиотека за JSON (например JSON.js), можете да опитате функцията JSON.encode() и да проверите резултата срещу празен низ от стойности.
function isEmpty(obj) {
for(var i in obj) { return false; }
return true;
}