2017-03-15 2 views
0

Wie können Sie die Länge dieser Art von Array mit Javascript oder jquery?Javascript - Get Array-Länge von multidimensionalen Array

var Accounts = { 
'Account001' : { 'data1' : 'foo1', 'data2' : 'bar1' }, 
'Account002' : { 'data1' : 'foo2', 'data2' : 'bar2' }, 
'Account003' : { 'data1' : 'foo3', 'data2' : 'bar3' }, 
'Account004' : { 'data1' : 'foo4', 'data2' : 'bar4' } 
}; 

Ich versuchte Accounts.length aber es scheint NAN zurückzukehren.

+0

Was Sie haben, ist eine Aufgabe von Objekten und ** nicht ** eine Anordnung. – KarelG

+0

http://stackoverflow.com/questions/5223/length-of-a-javascript-object Wie von @KarelG erwähnt, ist es ein Objekt, kein Array. –

Antwort

4
Object.keys(Accounts).length 

Sie versuchen, die "Länge" eines Objekts zu erhalten, das nicht existiert. Wenn dies ein Array wäre, wäre es in einer Klammer [] eingeschlossen.

Dies ist definitiv ein Objekt. Um die Eigenschaften in einem Objekt zu zählen, müssten Sie also Object.keys() verwenden, um die Eigenschaftsnamen in einem Array zu enthalten und dann die Elemente von dort zu zählen.

+0

Danke, das scheint die beste Lösung für das zu sein, was ich brauchte. – zeddex

1

Sie können eine for-Schleife verwenden, um alle Elemente in dem Objekt durchlaufen und eine Zählung der Zahl zu erhalten:

var Accounts = { 
 
'Account001' : { 'data1' : 'foo1', 'data2' : 'bar1' }, 
 
'Account002' : { 'data1' : 'foo2', 'data2' : 'bar2' }, 
 
'Account003' : { 'data1' : 'foo3', 'data2' : 'bar3' }, 
 
'Account004' : { 'data1' : 'foo4', 'data2' : 'bar4' } 
 
}; 
 

 
var count = 0; 
 
for(var k in Accounts) { 
 
    if(Accounts.hasOwnProperty(k)) { 
 
    count++; 
 
    } 
 
} 
 
console.log(count);

Verwandte Themen