javascript - 如何仅从带有“RANKED_SOLO_5x5”而不是“RANKED_FLEX_SR”的json部分获取信息(“tier”、“rank”、“leaguePoints”)
问题描述
[
{
leagueId: "51f35167-0e62-41b0-bb5d-8ec376e754d7",
queueType: "RANKED_FLEX_SR",
tier: "GOLD",
rank: "II",
summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
summonerName: "Impermanencë",
leaguePoints: 1,
wins: 7,
losses: 5,
veteran: false,
inactive: false,
freshBlood: false,
hotStreak: false,
},
{
leagueId: "0e4412d1-81c2-4839-9045-c0cb556ebdcb",
queueType: "RANKED_SOLO_5x5",
tier: "PLATINUM",
rank: "III",
summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
summonerName: "Impermanencë",
leaguePoints: 75,
wins: 222,
losses: 205,
veteran: false,
inactive: false,
freshBlood: false,
hotStreak: false,
},
];
function RANKFIND(league_ign) {
var tempign = "Impermanencë"
var apirequest1 = "https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/"
var apirequest2 = "?api_key={KEYVALUE}"
var idapirequest = (apirequest1 + tempign + apirequest2)
Logger.log(idapirequest);
var response = UrlFetchApp.fetch(idapirequest);
var content = response.getContentText();
Logger.log(content)
var json = JSON.parse(content)
var id = json["id"]
Logger.log(id);
var tempid = "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg"
var apirequest3 = "https://na1.api.riotgames.com/lol/league/v4/entries/by-summoner/"
var apirequest4 = "?api_key={KEYVALUE}"
var apirequestfull = (apirequest3 + id + apirequest4)
var response = UrlFetchApp.fetch(apirequestfull);
var content = response.getContentText();
var json2 = JSON.parse(content)
Logger.log(json2);
var json3 = json2[0]
var tier = json3["tier"];
var rank = json3["rank"];
var league_points = json3["leaguePoints"];
var full_rank = (tier+ "," + rank + " " + league_points + "lp")
Logger.log(full_rank)
return full_rank
}
解决方案
如果您知道 arr 中对象的索引并且知道它不会更改,那么您可以使用index
来获取对象然后对其进行解构
const { tier, rank, leaguePoints } = arr[1];
console.log(tier, rank, leaguePoints);
const arr = [
{
leagueId: "51f35167-0e62-41b0-bb5d-8ec376e754d7",
queueType: "RANKED_FLEX_SR",
tier: "GOLD",
rank: "II",
summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
summonerName: "Impermanencë",
leaguePoints: 1,
wins: 7,
losses: 5,
veteran: false,
inactive: false,
freshBlood: false,
hotStreak: false,
},
{
leagueId: "0e4412d1-81c2-4839-9045-c0cb556ebdcb",
queueType: "RANKED_SOLO_5x5",
tier: "PLATINUM",
rank: "III",
summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
summonerName: "Impermanencë",
leaguePoints: 75,
wins: 222,
losses: 205,
veteran: false,
inactive: false,
freshBlood: false,
hotStreak: false,
},
];
const { tier, rank, leaguePoints } = arr[1];
console.log(tier, rank, leaguePoints);
否则你需要使用find来获取元素然后解构。
const obj = arr.find((o) => o.queueType === "RANKED_SOLO_5x5");
const { tier, rank, leaguePoints } = obj;
console.log(tier, rank, leaguePoints);
const arr = [
{
leagueId: "51f35167-0e62-41b0-bb5d-8ec376e754d7",
queueType: "RANKED_FLEX_SR",
tier: "GOLD",
rank: "II",
summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
summonerName: "Impermanencë",
leaguePoints: 1,
wins: 7,
losses: 5,
veteran: false,
inactive: false,
freshBlood: false,
hotStreak: false,
},
{
leagueId: "0e4412d1-81c2-4839-9045-c0cb556ebdcb",
queueType: "RANKED_SOLO_5x5",
tier: "PLATINUM",
rank: "III",
summonerId: "YZ9wH1Bldkndu5YnBb9cYn5corkcU_rDCVsVEaHDttelCVg",
summonerName: "Impermanencë",
leaguePoints: 75,
wins: 222,
losses: 205,
veteran: false,
inactive: false,
freshBlood: false,
hotStreak: false,
},
];
const obj = arr.find((o) => o.queueType === "RANKED_SOLO_5x5");
const { tier, rank, leaguePoints } = obj;
console.log(tier, rank, leaguePoints);
推荐阅读
- botframework - 记住以前的答案以指导对话
- java - Java 正则表达式替换一个接一个的单词
- firebase - 调度firebase云功能
- java - 我如何为我获得的两个输出放置一些空间?
- reactjs - 为什么在使用 redux 持久化时刷新后某些值会被删除?
- c# - 在字符串中查找子字符串以在搜索的句子之前找到部分
- postgresql - 面临正确格式化 CSV 数据的问题
- datatables - 如何同时从数据表和mysql中删除一行?
- rstudio - R Studio:交互式运行时打印输出,但编织时不打印
- javascript - vue.js:错误未知动作类型?