41

可能重复:
如何测试来自 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;
}

有没有更好的方法(比如原生属性/函数之类的)?

4

1 回答 1

51

试试这个:

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

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

于 2010-08-06T19:19:49.413 回答