javascript select 变化的对象键
javascript select object key that changes
我正在使用 mediaWiki API 获取随机文章,例如:
https://en.wikipedia.org/w/api.php?action=query&generator=random&grnnamespace=0&format=json&grnlimit=1
响应示例:
{
"batchcomplete": "",
"continue": {
"grncontinue": "0.630140535217|0.63014105781|6813083|0",
"continue": "grncontinue||"
},
"query": {
"pages": {
"2374863": {
"pageid": 2374863,
"ns": 0,
"title": "Khvalynsk culture"
}
}
}
}
当我把它变成一个 javascript 对象时,我得到这个:
query: {
pages: {
31676967: { // <-- changes each request
pageid: 31676967, // <-- changes each request
ns: 0,
title: "HP Neoview"
}
}
}
我用<--
标记的键和值在每次获取时都会改变。
如何获得标有 <--
的键或标有 <--
的值。我不能 select 像这样:
query.pages.31676967.pageid
因为数字变了。我试过这个:
query.pages[0].pageid
但只是 returns 未定义。有人知道我该怎么做吗?
Object.keys(query.pages)[0].pageid;
Getting the first index of an object
如果 pages
对象中始终只有一页,您可以使用 Object.values
方法获取它的值:
let query = {
pages: {
'31676967': {
pageid: 31676967,
ns: 0,
title: "HP Neoview"
}
}
};
let id = Object.values(query.pages)[0].pageid;
console.log(id);
我在我的一个项目中使用了 for ... in
语法,该项目使用了维基媒体 API 的随机文章功能。由于您的 API 调用总是 returns 一个结果,您可以访问随机文章的 title
属性,如:
for (x in query.pages) {
console.log(x.title); // title: "HP Neoview"
}
如果您想修改 API 调用以获取多篇随机文章,这也适用。
我正在使用 mediaWiki API 获取随机文章,例如:
https://en.wikipedia.org/w/api.php?action=query&generator=random&grnnamespace=0&format=json&grnlimit=1
响应示例:
{
"batchcomplete": "",
"continue": {
"grncontinue": "0.630140535217|0.63014105781|6813083|0",
"continue": "grncontinue||"
},
"query": {
"pages": {
"2374863": {
"pageid": 2374863,
"ns": 0,
"title": "Khvalynsk culture"
}
}
}
}
当我把它变成一个 javascript 对象时,我得到这个:
query: {
pages: {
31676967: { // <-- changes each request
pageid: 31676967, // <-- changes each request
ns: 0,
title: "HP Neoview"
}
}
}
我用<--
标记的键和值在每次获取时都会改变。
如何获得标有 <--
的键或标有 <--
的值。我不能 select 像这样:
query.pages.31676967.pageid
因为数字变了。我试过这个:
query.pages[0].pageid
但只是 returns 未定义。有人知道我该怎么做吗?
Object.keys(query.pages)[0].pageid;
Getting the first index of an object
如果 pages
对象中始终只有一页,您可以使用 Object.values
方法获取它的值:
let query = {
pages: {
'31676967': {
pageid: 31676967,
ns: 0,
title: "HP Neoview"
}
}
};
let id = Object.values(query.pages)[0].pageid;
console.log(id);
我在我的一个项目中使用了 for ... in
语法,该项目使用了维基媒体 API 的随机文章功能。由于您的 API 调用总是 returns 一个结果,您可以访问随机文章的 title
属性,如:
for (x in query.pages) {
console.log(x.title); // title: "HP Neoview"
}
如果您想修改 API 调用以获取多篇随机文章,这也适用。