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

如何从JavaScript对象提取特定数据?Fortnite-API Discord机器人开发

访问Fortnite API返回数据中的Solo/Duo分组信息

别担心,处理这种嵌套的API返回对象其实很简单——完全不用把它转成字符串,直接通过对象的属性链就能精准获取你要的数据。我来给你一步步拆解:

第一步:先明确API返回的结构逻辑

假设你用axios或node-fetch请求API后拿到的响应数据是userData,首先得理清这个对象的层级。通常Fortnite API的对战数据会嵌套在类似stats或br的字段下,里面直接包含solo、duo、squad这些分组对象。

举个贴近实际的结构示例:

{
  data: {
    stats: {
      br: {
        solo: {
          wins: 123,
          kills: 4567,
          matchesPlayed: 890,
          // 其他solo相关统计项
        },
        duo: {
          wins: 78,
          kills: 2345,
          matchesPlayed: 567,
          // 其他duo相关统计项
        },
        squad: {
          // ... 同理的 squad 数据
        }
      }
    }
  }
}

第二步:获取整个分组的完整数据

如果你想拿到solo分组下的所有信息,直接顺着属性链访问就行:

const soloStats = userData.data.stats.br.solo;
console.log(soloStats); // 这会输出solo分组下的所有键值对

同理,duo和squad的完整数据也可以用同样方式提取:

const duoStats = userData.data.stats.br.duo;
const squadStats = userData.data.stats.br.squad;

第三步:单独提取分组下的特定字段

如果只想拿solo的获胜数这类单个数据,继续往下钻属性即可:

const soloWins = userData.data.stats.br.solo.wins;
console.log(`Solo模式获胜数:${soloWins}`);

要是担心某个层级的字段不存在(比如用户从未玩过solo模式),可以用可选链操作符?.避免报错,再配合空值合并运算符??给个默认值:

// 若solo字段不存在,soloWins会取默认值0,而不是抛出错误
const soloWins = userData.data?.stats?.br?.solo?.wins ?? 0;

小技巧:批量处理所有分组数据

如果你想一次性处理solo、duo、squad所有模式的数据,可以用Object.entries()遍历:

const brStats = userData.data.stats.br;
for (const [mode, stats] of Object.entries(brStats)) {
  console.log(`=== ${mode.toUpperCase()} 模式数据 ===`);
  console.log(`获胜数:${stats.wins}`);
  console.log(`总击杀:${stats.kills}`);
  console.log(`总场次:${stats.matchesPlayed}\n`);
}

这样就能高效处理所有模式的数据,不用重复写冗余代码啦。

内容的提问来源于stack exchange,提问作者Mike Sassatelli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:01:45