我有一个看起来像这样的JSON:
Object:
www.website1.com : "dogs"
www.website2.com : "cats"
>__proto__ : Object
当我这样做时会打印出来:
console.log(obj);
我正在尝试获取此JSON中的项目计数,obj.length返回“undefined”和obj [0] .length返回
未捕获的TypeError:无法读取未定义的属性“长度”
在这种情况下,我希望长度返回“2”。我怎样才能找到计数?
谢谢!
答案 0 :(得分:24)
你必须自己计算:
function count(obj) {
var count=0;
for(var prop in obj) {
if (obj.hasOwnProperty(prop)) {
++count;
}
}
return count;
}
虽然现在我看到了关于这个问题的第一个评论,但在该页面上有一个更好的答案。单行,可能同样快,如果不是更快:
function count(obj) { return Object.keys(obj).length; }
请注意,对Object.keys()
的支持似乎还没有跨浏览器。
答案 1 :(得分:4)
.length
仅适用于数组,而不适用于对象。
var count = 0;
for(var key in json)
if(json.hasOwnProperty(key))
count++;