1. ホーム
  2. javascript

[解決済み] JavaScriptのオブジェクトが空であることをテストするにはどうすればよいですか?

2022-03-17 02:34:26

質問

AJAXリクエストの後、私のアプリケーションは時々、次のような空のオブジェクトを返すことがあります。

var a = {};

そうであるかどうかを確認するには、どうすればよいのでしょうか。

どのように解決するのですか?

ECMA 5+ :

// because Object.keys(new Date()).length === 0;
// we have to do some additional check
obj // ???? null and undefined check
&& Object.keys(obj).length === 0
&& Object.getPrototypeOf(obj) === Object.prototype

ただし、これは不要な配列( keys ).

プレECMA5。

function isEmpty(obj) {
  for(var prop in obj) {
    if(Object.prototype.hasOwnProperty.call(obj, prop)) {
      return false;
    }
  }

  return JSON.stringify(obj) === JSON.stringify({});
}

jQuery :

jQuery.isEmptyObject({}); // true

ロダッシュ :

_.isEmpty({}); // true

アンダースコア :

_.isEmpty({}); // true

ホーム

Hoek.deepEqual({}, {}); // true

エクストJS

Ext.Object.isEmpty({}); // true

AngularJS(バージョン1)

angular.equals({}, {}); // true

ラムダ

R.isEmpty({}); // true