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

如何利用已知league_id从API数据中匹配获取对应服务器ID

解决通过已知league_id提取对应服务器ID的问题

完善后的代码实现

var knownID = "32537";
// 全局变量存储提取到的服务器ID,供后续表单提交使用
var serverID;

var url = '//api.myfantasyleague.com/' + year + '/export?TYPE=myleagues&JSON=1';
function GetServerID() {
    $.ajax({
        url: url,
        type: "GET",
        dataType: 'json',
        xhrFields: {
            withCredentials: true
        },
        success: function (data) {
            const myLeagues = data.leagues.league;
            // 1. 筛选出与knownID匹配的联赛数据
            const targetLeague = myLeagues.find(league => league.league_id === knownID);
            
            if (targetLeague) {
                // 2. 从URL中提取www后的数字作为服务器ID
                const serverMatch = targetLeague.url.match(/www(\d+)\./);
                if (serverMatch && serverMatch[1]) {
                    serverID = serverMatch[1];
                    console.log('已获取服务器ID:', serverID);
                    // 此处可添加表单提交等后续逻辑
                } else {
                    console.error('无法从URL中解析服务器ID');
                }
            } else {
                console.error('未找到匹配league_id的联赛数据');
            }
        },
        error: function(xhr, status, error) {
            console.error('API请求失败:', error);
        }
    });
}

核心逻辑说明

  • 匹配目标联赛:使用Array.find()遍历联赛数组,精准定位league_id与knownID一致的项,这是数组查找中效率较高的方式。
  • 提取服务器ID:通过正则表达式/www(\d+)\./捕获URL中www后的连续数字,兼容两位及更多位数的服务器ID(避免后续API格式变动导致失效),通过serverMatch[1]获取捕获到的数字值。
  • 异常处理:添加了未找到目标联赛、解析失败、请求失败三种场景的错误提示,避免程序静默崩溃。

注意事项

  • 确保year变量已提前正确定义,否则API请求URL会无效。
  • 如果不需要全局变量serverID,也可以在获取到值后直接传入表单提交的逻辑中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:15:41