JavaScript从对象中获取信息

JavaScript get info from object

本文关键字:获取 信息 对象 JavaScript      更新时间:2023-09-26

我有一个JavaScript对象。我试着从rgInventory.(someid).classid得到classid,但总是得到undefined

My code (items is My object):

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

问题是您使用i变量作为查找,而不是Object.keys(items.rgInventory)[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)
})