javascript:检查对象是否没有属性或映射/关联数组是否为空

Javascript: Checking if an object has no properties or if a map/associative-array is empty

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I test for an empty Javascript object from JSON?

在javascript中,是否有一种简单的方法来检查对象是否没有属性?或者换句话说,检查映射/关联数组是否为空的简单方法?例如,假设您具有以下功能:

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

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

1
2
3
4
5
6
7
8
9
10
function isEmpty(map) {
   var empty = true;

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

   return empty;
}

是否有更好的方法(如本机属性/函数或其他方法)?


试试这个:

1
2
3
4
5
6
7
8
function isEmpty(map) {
   for(var key in map) {
     if (map.hasOwnProperty(key)) {
        return false;
     }
   }
   return true;
}

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