Totaal aantal items op Json-object ophalen?

Mogelijk duplicaat:
Lengte van Javascript-object (dwz associatieve array)

Ik heb een object dat lijkt op dit:

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

Ik probeer de lengte te krijgen, het probleem is dat jsonArray.length5 retourneert in plaats van 3 (wat het totale aantal items is dat het heeft). De array is relatief lang (heeft 1000×2000 items) en dit moet heel vaak per seconde worden gedaan. Hoe kan ik het aantal items efficiënter krijgen?


Antwoord 1, autoriteit 100%

Naast het antwoord van Kieran hebben moderne browsers blijkbaar een functie Object.keys. In dit geval kunt u dit doen:

Object.keys(jsonArray).length;

Meer details in dit antwoord op Hoe de eigenschappen van een javascript-object weer te geven


Antwoord 2, autoriteit 12%

Dat is een object en je wilt de eigenschappen ervan tellen.

Object.keys(jsonArray).length

Referenties:


Antwoord 3, autoriteit 3%

Is dat uw echte code? Een javascript-object (dat is wat je ons hebt gegeven) heeft geen eigenschap length, dus in dit geval retourneert exampleArray.lengthundefined in plaats van 5.

Deze stackoverflowverklaart de lengteverschillen tussen een object en een array, en deze stackoverflowlaat zien hoe je de ‘grootte’ van een object kunt krijgen.

Other episodes