我有点紧张。 请看一下从维基百科中获取的这个对象。
object fetched from Wikipedia API 我将来自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 - 你能帮忙解释一下错误的类型吗?
答案 0 :(得分:0)
我不确定究竟是什么问题,但我认为我把键作为数组索引混淆了。
@Sebastian Nette提出了一个正确答案:
Object.keys(data.query.pages);
因此,一旦获取了数据,就会产生一个回调:
function myCallback(data) {
var key = Object.keys(data.query.pages);
return data.query.pages[key]
};
将返回对象[key]