2015-04-24 53 views
0

我正在尋找優化此代碼,希望佔用更少的空間。我對JavaScript和jQuery相當陌生,所以我不太確定它會怎麼做。我如何壓縮/優化此代碼(jQuery)?

rankedSolo5["Wins"] = jsonData.playerStatSummaries[5].wins; 
$("#rankedWinsSolo5 .statsValue").html(rankedSolo5["Wins"]); 

rankedSolo5["Assists"] = jsonData.playerStatSummaries[5].aggregatedStats.totalAssists; 
$("#rankedAssistsSolo5 .statsValue").html(rankedSolo5["Assists"]); 

rankedSolo5["Kills"] = jsonData.playerStatSummaries[5].aggregatedStats.totalChampionKills; 
$("#rankedKillsSolo5 .statsValue").html(rankedSolo5["Kills"]); 

rankedSolo5["MinKills"] = jsonData.playerStatSummaries[5].aggregatedStats.totalMinionKills; 
$("#rankedMinKillsSolo5 .statsValue").html(rankedSolo5["MinKills"]); 

rankedSolo5["NeutralMinKills"] = jsonData.playerStatSummaries[5].aggregatedStats.totalNeutralMinionsKilled; 
$("#rankedNeutralMinKillsSolo5 .statsValue").html(rankedSolo5["NeutralMinKills"]); 

rankedSolo5["TurretsKilled"] = jsonData.playerStatSummaries[5].aggregatedStats.totalTurretsKilled; 
$("#rankedTurretsKilledSolo5 .statsValue").html(rankedSolo5["TurretsKilled"]); 
+0

更少的空間在哪?你的問題傾向於JS縮小,雖然你標記這是'幹'標籤 - 你能更具體嗎? –

+0

@NicholasKyriakides我添加了DRY標籤,我以爲這就是他要找的。 – Barmar

+0

如果'aggregatedStats'的屬性與'rankingSolo5'的屬性相同,將會有所幫助。 – Barmar

回答

4

請使用涉及rankedSolo5這些屬性名在aggregatedStats對象:

var fields = { 
    "Wins": "wins", 
    "Assists": "totalAssists", 
    "Kills": "totalChampionKills", 
    ... 
}; 

然後你可以遍歷這個來執行相同的操作:如

$.each(fields, function(rankedProp, statsProp) { 
    rankedSolo5[rankedProp] = jsonData.playerStatSummaries[5][statsProp]; 
    $("#ranked" + rankedProp + "Solo5 .statsValue").html(rankedSolo5[rankedProp]); 
});