Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取Json对象上的项目总数?_Javascript_Json - Fatal编程技术网

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

Javascript 获取Json对象上的项目总数?,javascript,json,Javascript,Json,可能重复: 我有一个类似于此的对象: 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而不是

可能重复:

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

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

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


解释对象和数组之间的长度差异,并说明如何获取对象的“大小”。

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

Object.keys(jsonArray).length
参考资料:


    • 显然,除了kieran的答案之外,现代浏览器还有一个
      Object.keys
      功能。在这种情况下,您可以执行以下操作:

      Object.keys(jsonArray).length;
      

      关于

      jsonArray
      不是数组的更多详细信息。
      Object.keys(jsonArray).length一个对象没有长度属性,并且你的对象既不是数组也不是有效的json。为什么你要编写object.keys(…)而不仅仅是keys(),它是双向的,这两者之间有什么区别???Chrome v54没有这一点。