我有一个JavaScript object。我尝试从classid
获取rgInventory.(someid).classid
,并且总是获取undefined
。
我的代码(项目是我的对象):
for (var i = 0; i < Object.keys(items.rgInventory).length; i++) {
console.log(items.rgInventory[i].classid);
}
最佳答案
您的i
不是密钥,而是该密钥的序列号。
将您的代码更改为:
var keys = Object.keys(items.rgInventory);
for (var i = 0; i < keys.length; i++) {
console.log(items.rgInventory[keys[i]].classid);
}
注意,使用
for...of
语法,可以这样编码:for (var key of Object.keys(items.rgInventory)) {
console.log(items.rgInventory[key].classid);
}
for...in
语法更适合迭代对象键:for (var key in items.rgInventory) {
console.log(items.rgInventory[key].classid);
}
您还可以使用
forEach
回调,并带有漂亮的第二个参数来设置this
:Object.keys(items.rgInventory).forEach(function (key) {
console.log(this[key].classid);
}, items.rgInventory);