Получить общее количество элементов на объекте 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 (что является общим количеством элементов, которые он имеет). Массив является относительно длинным (имеет 1000x2000 элементов), и это должно быть сделано много раз в секунду. Как я могу получить количество элементов более эффективно?

3 83

3 ответа:

в дополнение к ответу Кирана, по-видимому, современные браузеры имеют

это объект, и вы хотите подсчитать его свойства.

Object.keys(jsonArray).length

ссылки:

Это ваш фактический код? Объект javascript (который Вы нам дали) не имеет свойства length, поэтому в этом случае exampleArray.length возвращает undefined, а не 5.

это stackoverflow объясняет разницу в длине между объектом и массивом, и это stackoverflow показано, как получить размер объекта.