关于javascript:获取Json对象上的项目总数?

Get total number of items on Json object?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Length of Javascript Object (ie. Associative Array)

我有一个类似于这个的物体:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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个项目),必须每秒钟执行多次。我如何才能更有效地获取项目数量?


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

1
Object.keys(jsonArray).length;

有关如何列出javascript对象属性的详细信息,请参阅此答案。


这是一个对象,您需要计算它的属性。

1
Object.keys(jsonArray).length

参考文献:

  • Object.keys
  • 康克斯的同胞桌。


这是您的实际代码吗?javascript对象(这是您给我们的)没有length属性,因此在本例中,exampleArray.length返回Undefined而不是5。

StackOverflow解释了对象和数组之间的长度差异,StackOverflow演示了如何获取对象的"大小"。