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.length
5 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.length
undefined 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.