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

lis*_*aro 96 javascript 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'
  }
};
Run Code Online (Sandbox Code Playgroud)

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

NT3*_*3RP 151

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

Object.keys(jsonArray).length;
Run Code Online (Sandbox Code Playgroud)

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


Ale*_*der 16

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

Object.keys(jsonArray).length
Run Code Online (Sandbox Code Playgroud)

参考文献:


kie*_*ran 5

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

此stackoverflow解释了对象和数组之间的长度差异,此stackoverflow显示了如何获取对象的"大小".