AJAXリクエストの後、アプリケーションが以下のように空のオブジェクトを返すことがあります。
var a = {};
どうすればそのような状況を確認できますか?
これを簡単に行う方法はありません。プロパティを明示的にループさせる必要があります。
function isEmpty(obj) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
return false;
}
return true;
}
ECMAScript 5 サポート](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys#Browser_compatibility)があれば、代わりに Object.keys()
を使うことができます。
function isEmpty(obj) {
return Object.keys(obj).length === 0;
}
1.単なる回避策です。データがない場合に、何か特別なプロパティを生成することはできますか?
例えばですが
var a = {empty:true};
そうすれば、AJAXコールバックのコードで簡単に確認することができます。
2.チェックする別の方法
if (a.toSource() === "({})") // その場合、'a'は空です
EDIT: JSONライブラリ(例:JSON.js)を使用している場合は、JSON.encode()関数を試して、空の値の文字列に対する結果をテストすることができます。