获取Json对象上的项目总数?

可能重复:
Javascript对象的长度(即关联数组)

我有一个与此类似的对象:

var jsonArray = {
  '-1': {
    '-1': 'b',
    '2': 'a',
    '10': 'c'
  },
  '2': {
    '-1': 'a',
    '2': 'b',
    '10': 'a'
  },
  '5': {
    '-1': 'a',
    '2': 'a',
    '10': 'b'
  }
};

我试图得到它的长度,问题是, jsonArray.length返回5而不是3(这是它的总项目)。 该阵列相对较长(具有1000x2000项目),并且这必须每秒完成很多次。 我如何更有效地获得物品的数量?


除了基兰的答案,显然,现代浏览器有一个Object.keys功能。 在这种情况下,你可以这样做:

Object.keys(jsonArray).length;

有关如何列出javascript对象的属性的更多详细信息


这是一个对象,你想要计算它的属性。

Object.keys(jsonArray).length

参考文献:

  • Object.keys
  • Kangax的compat表。

  • 这是你的实际代码吗? JavaScript对象(这是你给我们的)没有长度属性,所以在这种情况下, exampleArray.length返回未定义的而不是5。

    这个stackoverflow解释了一个对象和一个数组之间的长度差异,并且这个stackoverflow显示了如何获得一个对象的'大小'。

    链接地址: http://www.djcxy.com/p/27249.html

    上一篇: Get total number of items on Json object?

    下一篇: In JavaScript, Why doesn't for in return the contents of Object.prototype?