2017-03-15 17 views
0

javascriptまたはjqueryを使用してこの種の配列の長さを取得するにはどうすればよいですか?Javascript - 多次元配列から配列長を取得

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

私はAccounts.lengthを試しましたが、NANを返すようです。

+0

は、あなたが持っているもの**オブジェクトのオブジェクトであり、**はありません配列。 – KarelG

+0

http://stackoverflow.com/questions/5223/length-of-a-javascript-object @ KarelGで述べたように、そのオブジェクトは配列ではありません。 –

答えて

4
Object.keys(Accounts).length 

存在しないオブジェクトの「長さ」を取得しようとしています。これが配列の場合は、[]で囲みます。

これは間違いなくオブジェクトであるため、オブジェクト内のプロパティを数えるには、Object.keys()を使用してプロパティ名を配列に格納し、そこで要素を数えなければなりません。

+0

ありがとう、これは私が必要なもののための最良のソリューションのようです。 – zeddex

1

あなたは、オブジェクトと番号を取得するには、カウント内のすべての要素を反復するforループを使用することができます。

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);