Get total number of items on Json object?

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

I have an object similar to this one:

var jsonArray = {
  '-1': {
    '-1': 'b',
    '2': 'a',
    '10': 'c'
  },
  '2': {
    '-1': 'a',
    '2': 'b',
    '10': 'a'
  },
  '5': {
    '-1': 'a',
    '2': 'a',
    '10': 'b'
  }
};

I'm trying to get it's length, the problem is that jsonArray.length returns 5 instead of 3 (which is the total items it has). The array is relatively long (has 1000x2000 items) and this must be done a lot of times every second. How can I get the number of items more efficiently?


In addition to kieran's answer, apparently, modern browsers have an Object.keys function. In this case, you could do this:

Object.keys(jsonArray).length;

More details in this answer on How to list the properties of a javascript object


That's an Object and you want to count the properties of it.

Object.keys(jsonArray).length

References:

  • Object.keys .
  • Kangax's compat table.

  • Is that your actual code? A javascript object (which is what you've given us) does not have a length property, so in this case exampleArray.length returns undefined rather than 5.

    This stackoverflow explains the length differences between an object and an array, and this stackoverflow shows how to get the 'size' of an object.

    链接地址: http://www.djcxy.com/p/27250.html

    上一篇: 如何获得JavaScript哈希表计数?

    下一篇: 获取Json对象上的项目总数?