问题描述
我有点紧张。 请看一下从Wikipedia获取的此对象。
我正在将Wiki中的数据映射到我的对象上; 具体来说,我正在映射缩略图。
为此,我要使用缩略图属性扩展对象。 说,我有一个带有属性“ id”,“ name”的节点,我想用“ thumbnail”扩展它。
我正在努力获取由页面的数字ID形成的键的值。
例如,我要获取对象:... pages.6021858.thumbnail {}
我正在这样做:
fetchWikipediaDecorator(wikipedia_page_id, function(data){
var e = wikipedia_page_id,
f = e.toString(),
infoPage = data.query.pages;
console.log('infoPage',Object.keys(infoPage)[0]);
console.log('infoPage',infoPage.f);
console.log('infoPage',infoPage.e);
console.log('infoPage',infoPage[e]);
console.log('infoPage',infoPage[f]);
console.log('infoPage',data.query);
});
我不明白为什么:
data.query.pages
可以,但是
data.query.pages.162510
未定义。
console.log('infoPage',Object.keys(infoPage)[0]);
正确报告键“ 162510”其他所有未定义的情况:
infoPage 89513
infoPage undefined
infoPage undefined
infoPage undefined
infoPage undefined
我试图通过数字,字符串,数组索引来称呼它们的键...我确定我缺少smtg-您能帮我解释一下错误的类型吗?
1楼
user305883
0
2015-12-16 21:31:28
我不确定到底是什么问题,但我认为我在混淆作为数组索引的键之间。
@Sebastian Nette提出了正确的答案:
Object.keys(data.query.pages);
因此,一旦获取数据,便会产生如下回调:
function myCallback(data) {
var key = Object.keys(data.query.pages);
return data.query.pages[key]
};
将返回对象[键]