获取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(这是它的总项目)。 数组相对较长(有1000×2000项),每秒钟必须完成很多次。 我怎样才能更有效地获得物品的数量?

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

 Object.keys(jsonArray).length; 

在这个答案的更多细节如何列出一个javascript对象的属性

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

 Object.keys(jsonArray).length 

参考文献:

  • Object.keys
  • Kangax的compat表 。

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

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