【问题标题】:Count Key/Values in JSON [duplicate]计算 JSON 中的键/值 [重复]
【发布时间】:2011-09-11 03:01:24
【问题描述】:

可能重复:
Length of Javascript Associative Array

我有一个如下所示的 JSON:

Object:
   www.website1.com : "dogs"
   www.website2.com : "cats"
   >__proto__ : Object

当我这样做时会打印出来:

console.log(obj);

我正在尝试获取此 JSON 中项目的计数,obj.length 返回“未定义”并且 obj[0].length 返回

未捕获的类型错误:无法读取未定义的属性“长度”

在这种情况下,我希望长度返回“2”。如何找到计数?

谢谢!

【问题讨论】:

标签: javascript json


【解决方案1】:

你必须自己数一数:

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() 的支持似乎还没有跨浏览器。

【讨论】:

  • 你的意思是传递Object.keys的count函数吗?
  • @Eric,不,我确定没有。干杯。
  • 谢谢,也许它还不是跨浏览器,但在node.js服务器端运行良好;)
【解决方案2】:

.length 仅适用于数组,不适用于对象。

var count = 0;
for(var key in json)
    if(json.hasOwnProperty(key))
        count++;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多