3

我的问题很简短。

我需要计算 Json 对象的属性,例如

 obj={
      name:'Jhon',
      age:25
 }

这必须返回 2,一个代表“姓名”,另一个代表“年龄”。我尝试使用。

 obj.count();
 obj.length();

但没什么...

我在互联网上找到的所有解决方案都是针对数组的计数元素。

谢谢大家!

4

3 回答 3

11

试试Object.keys,Javascript 对象上没有内置length属性或方法。

var propCount = Object.keys(obj).length;

请注意,您需要在源代码中添加一个 Shim 以增加对某些旧浏览器的支持(例如:IE < 9)。从 MDN 阅读文档链接

于 2013-10-01T21:06:45.093 回答
3

试试这样:

Object.keys(obj).length
于 2013-10-01T21:06:47.507 回答
2

只是为了添加到Object.keys(obj).length解决方案中,这里有一个用于不支持 Object.keys 的浏览器的 polyfill。

Object.keys = Object.keys || function(o,k,r){
    r=[];
    for(k in o){
        r.hasOwnProperty.call(o,k) && r.push(k);
    }
    return r;
}
于 2013-10-01T22:03:29.070 回答