我正在尝试遍历嵌套对象,但我一直在返回undefined。
我的对象:
var ltColumns = {
"col1": {data: "productCode", title: "Product Code", width: "7%" },
"col2": {data: "brand", title: "Brand", width: "5%"}
};
我的循环:
for (var key in ltColumns) {
console.log(key.data);
}
在这种情况下,我试图控制记录"数据"每个嵌套对象的属性。但是,我一直未定义'。有人可以帮忙吗?
谢谢!
答案 0 :(得分:2)
将您的循环更改为:
for (var key in ltColumns) {
console.log(ltColumns[key].data);
}
您的for...in
循环会在每次迭代时将属性名称返回key
,此处col1
和col2
。因此,key.data
语句本身将返回undefined,因为col1
和col2
都不是对象 - 它们是ltColumns
的属性。因此,您需要同时使用key
和ltColumns
来获取col1
和col2
属性的值,因为ltColumns
是实际对象。
答案 1 :(得分:2)
使用此:
console.log(ltColumns[key].data);
答案 2 :(得分:0)
for (var key in ltColumns) {
console.log(key.data); // key is just a string, not the property itself
// "col1".data, "col2".data, etc.
// and these strings do not have `data` property
}
你想要access the properties。因此object[property]
因为点符号是不可能的。