繁体   English   中英

如何仅从具有“RANKED_SOLO_5x5”而不是“RANKED_FLEX_SR”的 json 部分获取信息(“tier”、“rank”、“leaguePoints”)

[英]How do I get information ("tier","rank","leaguePoints") from only the section of json with "RANKED_SOLO_5x5" and not "RANKED_FLEX_SR"

json

[
  {
    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 中 object 的索引并且您知道它不会改变,那么您可以使用index获取 object 然后对其进行解构

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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM