JavaScriptがありますobjectです。 はrgInventory.(someid).classid
になり、常にundefined
になります。JavaScriptオブジェクトから情報を取得
私のコード(アイテムは私の物です):
for (var i = 0; i < Object.keys(items.rgInventory).length; i++) {
console.log(items.rgInventory[i].classid);
}
JavaScriptがありますobjectです。 はrgInventory.(someid).classid
になり、常にundefined
になります。JavaScriptオブジェクトから情報を取得
私のコード(アイテムは私の物です):
for (var i = 0; i < Object.keys(items.rgInventory).length; i++) {
console.log(items.rgInventory[i].classid);
}
i
はキーではなく、そのキーのシーケンス番号です。
:
for (var key of Object.keys(items.rgInventory)) {
console.log(items.rgInventory[key].classid);
}
for...in
構文は、オブジェクトキーを反復のためのより適切である:
for...of
構文で、それは次のようにコーディングすることができることを
var keys = Object.keys(items.rgInventory);
for (var i = 0; i < keys.length; i++) {
console.log(items.rgInventory[keys[i]].classid);
}
注意
for (var key in items.rgInventory) {
console.log(items.rgInventory[key].classid);
}
を設定するための素晴らしい第二引数でコールバック、:
Object.keys(items.rgInventory).forEach(function (key) {
console.log(this[key].classid);
}, items.rgInventory);
問題ではなく、Object.keys(items.rgInventory)[i]
の、あなたは、ルックアップとしてi
変数を使用していることである。この方法を試してください。
for (var i = 0; i < Object.keys(items.rgInventory).length; i++) {
console.log(items.rgInventory[Object.keys(items.rgInventory)[i]].classid);
}
しかし、これはおそらくあなたがこのルックアップをしたいのではありません...これは少しきれいです:
Object.keys(items.rgInventory).forEach(function(key) {
console.log(items.rgInventory[key].classid)
})
downvoterはすべての答えで彼の問題を説明できますか? – bluetoft
それは単に、デバッガに関連する変数を調べることによっておよそ10秒で解決されている可能性がありタイプミスは、だ@bluetoft。これは、「役に立たない」というテキストブックの定義です。 –
console.log(items.rgInventory ['1908569708'] .classid); –