当前位置: 代码迷 >> JavaScript >> 从对象中获取键javascript返回未定义
  详细解决方案

从对象中获取键javascript返回未定义

热度:22   发布时间:2023-06-03 18:09:14.0

我有点紧张。 请看一下从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-您能帮我解释一下错误的类型吗?

我不确定到底是什么问题,但我认为我在混淆作为数组索引的键之间。

@Sebastian Nette提出了正确的答案:

Object.keys(data.query.pages);

因此,一旦获取数据,便会产生如下回调:

function myCallback(data) {
  var key = Object.keys(data.query.pages);
  return data.query.pages[key]
};

将返回对象[键]

  相关解决方案