web-dev-qa-db-ja.com

Javascript:オブジェクトにプロパティがないか、マップ/連想配列が空かどうかを確認する

可能性のある複製:
JSONから空のJavascriptオブジェクトをテストするにはどうすればよいですか?

Javascriptでオブジェクトにプロパティがないかどうかを確認する簡単な方法はありますか?または、言い換えると、マップ/連想配列が空かどうかを確認する簡単な方法ですか?たとえば、次のものがあるとします。

var nothingHere = {};
var somethingHere = {foo: "bar"};

どれが「空」かを簡単に判断する方法はありますか?私が考えることができる唯一のものは、このようなものです:

function isEmpty(map) {
   var empty = true;

   for(var key in map) {
      empty = false;
      break;
   }

   return empty;
}

より良い方法はありますか(ネイティブのプロパティ/関数など)?

33
Vivin Paliath

これを試して:

function isEmpty(map) {
   for(var key in map) {
     if (map.hasOwnProperty(key)) {
        return false;
     }
   }
   return true;
}

ソリューションも機能しますが、Objectプロトタイプを拡張するライブラリがない場合のみです。十分かもしれませんし、そうでないかもしれません。

45
chryss