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

时间:2012-12-08 22:44:46

标签: javascript json

  

可能重复:
  Length of Javascript Object (ie. Associative Array)

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

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项),这必须每秒进行很多次。如何更有效地获得项目数量?

3 个答案:

答案 0 :(得分:141)

除了kieran的答案,显然,现代浏览器具有Object.keys功能。在这种情况下,您可以这样做:

Object.keys(jsonArray).length;

How to list the properties of a javascript object

上这个答案的更多细节

答案 1 :(得分:16)

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

Object.keys(jsonArray).length

参考文献:

答案 2 :(得分:5)

这是你的实际代码吗?一个javascript对象(这是你给我们的)没有length属性,所以在这种情况下exampleArray.length返回undefined而不是5。

This stackoverflow解释了对象和数组之间的长度差异,this stackoverflow显示了如何获取对象的“大小”。