所以使用this JSON data我试图找到包含值“RankedSolo5x5”的元素的位置,之前我认为我可以这样做:
$("#rankedStats").append("Ranked wins: " + obj.playerStatSummaries[5].wins + "</br>" +
"Ranked losses:" + obj.playerStatSummaries[5].losses + "</br>" +
"w/l ratio: " + obj.playerStatSummaries[5].wins/obj.playerStatSummaries[5].losses + "</br>" +
"Total Ranked Kills: " + obj.playerStatSummaries[5].aggregatedStats.totalChampionKills);
然而不幸的是,很快我发现对于不同的玩家来说,“RankedSolo5x5”的位置对于某些玩家来说会有所不同,所以可能是obj.playerStatSummaries[6].losses
或obj.playerStatSummaries[7].losses
,因此我需要找到包含“RankedSolo5x5”的元素,所以我尝试将所有值放在一个数组中并使用$.inArray("RankedSolo5x5", entry)
,如下所示:
$.getJSON("https://prod.api.pvp.net/api/lol/" + region + "/v1.2/stats/by-summoner/" + sID + "/summary?api_key=b05c2251-f659-4d24-8b5f-6b25a482b42a", function(stats){
obj = stats;
var entry = [];
$.each(obj.playerStatSummaries, function(key, value){
entry.push(JSON.stringify(key) + ', ' + JSON.stringify(value));
$("#rankedStats").append($.inArray("RankedSolo5x5", entry));
});
然而它只返回-1,现在我有点陷入困境......
答案 0 :(得分:1)
您可以尝试以下方法,
$.each(obj.playerStatSummaries, function(index, el){
if(el.playerStatSummaryType==='RankedSolo5x5'){
console.log(index);
}
});
答案 1 :(得分:0)
对于最简单的任务,一个人不需要jQuery(如果你知道一些基本的javascript,你会找到一个更好的人):
var found = false;
for (var i = 0; i < obj.playerStatSummaries.length; ++i) {
var summary = obj.playerStatSummaries[i];
if (summary.losses == 'RankedSolo5x5') {
found = summary;
break;
}
}
if (found) {
// ... do something with it.
}