如何将API获取的XRP排名变量作为另一接口返回数组的下标取值
解决方案
方案1:函数返回值调用(实现最简单,适合单次使用场景)
首先修改第一个函数,将获取到的排名作为返回值输出,而不是仅声明为局部变量:
function getXRPRank() { var url = "https://api.coinpaprika.com/v1/coins/xrp-xrp"; var XRPresponse = UrlFetchApp.fetch(url); var XRPjson = XRPresponse.getContentText(); var XRPdata = JSON.parse(XRPjson); return XRPdata.rank; }
之后在第二个函数中直接调用上述函数拿到最新排名,替换硬编码的下标即可:
function myXRP() { var url = "https://api.coinpaprika.com/v1/tickers"; var response = UrlFetchApp.fetch(url); var json = response.getContentText(); var data = JSON.parse(json); // 获取最新排名替换硬编码值 var currentRank = getXRPRank(); var XRP = data[currentRank].symbol; // 后续业务逻辑 }
方案2:全局变量存储(适合多函数复用排名,避免重复请求接口)
如果需要在多个函数中使用该排名,不想重复发请求获取,可以把排名存储在全局变量中:
// 声明全局变量存储排名 var XRPGlobalRank; function fetchXRPRank() { var url = "https://api.coinpaprika.com/v1/coins/xrp-xrp"; var XRPresponse = UrlFetchApp.fetch(url); var XRPjson = XRPresponse.getContentText(); var XRPdata = JSON.parse(XRPjson); XRPGlobalRank = XRPdata.rank; } function myXRP() { // 排名未获取时先请求接口 if (!XRPGlobalRank) { fetchXRPRank(); } var url = "https://api.coinpaprika.com/v1/tickers"; var response = UrlFetchApp.fetch(url); var json = response.getContentText(); var data = JSON.parse(json); var XRP = data[XRPGlobalRank].symbol; // 后续业务逻辑 }
补充说明:如果运行后发现获取的不是XRP数据,说明排名接口返回的是1开头的计数规则,而JavaScript数组下标从0开始,把下标的
currentRank/XRPGlobalRank改成currentRank - 1/XRPGlobalRank - 1即可适配。
内容的提问来源于stack exchange,提问作者Riaz Rasool
相关产品推荐
相关产品推荐

