2016-05-28 5 views
-5

以下のような配列がコンソールにあります。オブジェクト配列の長さがJavaScriptで返されます。

console.log(roles); 

User {0: "AdminUser", 1: "AuthenticatedUser"} 

これは配列ですが、配列の長さを取得できません。

インデックスを使用して配列にアクセスすると、以下のように値を取得できます。

console.log(roles[0]); 

AdminUser 
+1

これは配列ではない、その単純なオブジェクト – Rimpy

+1

どのように作成しましたか? – pietro909

+0

アレイでない場合、console.log(roles [0]);はどのように動作しますか? console.log(roles [1]);値を表示しますか? – Purus

答えて

0

これは配列ではなく、はっきりとオブジェクトです。

Array-like表記を使用してアクセスできる理由は、JSが角括弧のアクセス表記をサポートしているためです。 数字がキーになっているため、誤解を招く可能性があります。

+0

配列がない場合は、console.log(roles [0]);およびconsole.log(roles [1]);作品ですか? – Purus

+1

オブジェクトはその構文でもアクセスできるため、 – Clive

+0

長さが利用できない場合、どのようにループ経由でアクセスしますか?あなたの答えにコードを追加できますか? – Purus

0

Pietroのおかげで、私はObject.keys()について知った後、Google経由で解決策を見つけました。否決みんなのために

Object.keys(roles).forEach(function(key) { 
    console.log(key + ': ' + roles[key]); 
}); 

、それは私が)Object.keys(約今日学んだ新しいことです。落札していただきありがとうございます。 :)

関連する問題