2016-11-24 10 views
0

私は、次のオブジェクトがあります。次のコードは正常に動作し、なぜ私が疑問に思う配列のオブジェクトプロパティが値に正しくアクセスするのはなぜですか?

var obj = { 
    "Name of something": { 
     "key1": "value1", 
     "key2": "value2" 
    } 
}; 

を?

var title = Object.keys(obj); 
console.log(obj[title]) // {"key1": "value1", "key2": "value2"} 

どのようobjName of somethingオブジェクトのプロパティへのアクセスtitletitleはそれが配列ですか?あなたがキー

["Name of something"].toString() 

として渡したときに何が起こるかである文字列にその配列を変換する場合

+2

いいえ 'person [" name "]'は 'person.name'をJavascriptで書く別の方法です。 'obj.property'表記を使用することは、' property'の名前にどの文字を使用できるかという点では幾分制限されています(空白や演算子などは '.'表記を使用することはできません)。 – connexo

答えて

3

は、オブジェクトが1つのキーだけを持っているので、Object.keysは、配列

["Name of something"] 

を返します。あなたは得る

あなたのオブジェクトの鍵はどちらですか?

obj["Name of something"] // returns {"key1": "value1", "key2": "value2"} 
関連する問題