Javascript:检查对象是否没有属性,或者map/associative-array是否为空

Viv*_*ath 33 javascript associative-array map is-empty object-property

可能重复:
如何从JSON测试空Javascript对象?

在Javascript中是否有一种简单的方法来检查对象是否没有属性?或者换句话说,检查地图/关联数组是否为空的简单方法?例如,假设您有以下内容:

var nothingHere = {};
var somethingHere = {foo: "bar"};
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来判断哪一个是"空的"?我唯一能想到的是这样的事情:

function isEmpty(map) {
   var empty = true;

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

   return empty;
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法(像本地财产/功能或其他东西)?

chr*_*yss 45

试试这个:

function isEmpty(map) {
   for(var key in map) {
     if (map.hasOwnProperty(key)) {
        return false;
     }
   }
   return true;
}
Run Code Online (Sandbox Code Playgroud)

您的解决方案也可以工作,但前提是没有库扩展Object原型.它可能也可能不够好.