You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历页面键唯一的Wikipedia API返回结果(适配Noodl.net)

修正Wikipedia API结果遍历代码方案

原代码问题点

  • Response.content.query.pages是对象而非数组,直接用length循环完全无效
  • resultPagesArrayEntries.entries();语法错误,未正确调用Object.entries()方法
  • 循环中错误将索引i当作页面对象,导致i.names等属性获取失败
  • API返回数据里没有names/urls/imageUrls/descriptions这些字段,需对应到实际返回的title/extract,并手动生成页面URL

修正后的代码

// 从API响应中取出pages对象
const wikiPagesObj = Response.content.query.pages;
// 将对象转成键值对数组,方便遍历
const pagesEntries = Object.entries(wikiPagesObj);

const wikiPagesArray = [];

// 遍历每个页面条目
for (const [pageId, pageData] of pagesEntries) {
    // 构造符合需求的自定义对象
    const pageObj = Noodl.Object.create({
        name: pageData.title, // 对应API里的title字段
        url: `https://en.wikipedia.org/?curid=${pageData.pageid}`, // 用pageid拼接维基百科页面URL
        description: pageData.extract, // 对应API里的extract字段(页面摘要)
        imageUrl: null // 当前API返回无图片数据,若需要需额外加请求参数获取
    });
    
    wikiPagesArray.push(pageObj);
}

// 输出处理后的数组
Outputs.resultPages = wikiPagesArray;

代码说明

  1. 用Object.entries()把pages对象转成[pageId, pageData]格式的数组,解决对象无法按索引遍历的问题
  2. 直接解构遍历数组里的键值对,拿到每个页面的原始数据
  3. 映射API实际返回的字段:把title作为名称,extract作为描述,通过pageid拼接标准维基百科页面地址
  4. 如果需要图片URL,得在API请求里添加prop=pageimages参数,当前返回数据没包含该字段,暂时设为null留待后续扩展

内容的提问来源于stack exchange,提问作者Red Ace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:06:25