[英]Can anyone help me simplify?
var GAME1NUM = "";
if (json.participantIdentities[0].player.summonerName == ACTUALNAME) {
var GAME1NUM = 0;
} else if (json.participantIdentities[1].player.summonerName == ACTUALNAME) {
var GAME1NUM = 1;
} else if (json.participantIdentities[2].player.summonerName == ACTUALNAME) {
var GAME1NUM = 2;
} else if (json.participantIdentities[3].player.summonerName == ACTUALNAME) {
var GAME1NUM = 3;
} else if (json.participantIdentities[4].player.summonerName == ACTUALNAME) {
var GAME1NUM = 4;
} else if (json.participantIdentities[5].player.summonerName == ACTUALNAME) {
var GAME1NUM = 5;
} else if (json.participantIdentities[6].player.summonerName == ACTUALNAME) {
var GAME1NUM = 6;
} else if (json.participantIdentities[7].player.summonerName == ACTUALNAME) {
var GAME1NUM = 7;
} else if (json.participantIdentities[8].player.summonerName == ACTUALNAME) {
var GAME1NUM = 8;
} else if (json.participantIdentities[9].player.summonerName == ACTUALNAME) {
var GAME1NUM = 9;
}
需要幫助來簡化重復的代碼
真的請幫忙,如果您不願意的話可以,但是請您幫忙
使用ES6中的Array#findIndex
:
var GAME1NUM = json.participantIdentities.findIndex(function(val) {
return val.player.summonerName === ACTUALNAME;
});
如果您需要更多的瀏覽器兼容性,請使用polyfill 。
也許是這樣的:
var json = { name1 : "name1", name2 : "name2" } function getName(summonerName){ return { name1 : 1, name2 : 2 }[summonerName] } var GAME1NUM = getName(json.name1); console.log(GAME1NUM);
創建一個返回對象的函數,然后可以使用方括號表示法訪問該對象的屬性值。
您要在對象中檢查的屬性將作為參數傳遞給函數。
如果使用JSON。 記得做JSON.parse()
您可以通過以下方式簡化邏輯:
工作演示:
var json = { participantIdentities: [ {"player":{"summonerName":"ACTUALNAME"}}, {"player":{"summonerName":"ACTUALNAME"}}, {"player":{"summonerName":"ACTUALNAME"}}, {"player":{"summonerName":"ACTUALNAME"}}, {"player":{"summonerName":"ACTUALNAME"}} ] }; var GAME1NUM = 0; for (var i in json.participantIdentities) { if(json.participantIdentities[i].player.summonerName == 'ACTUALNAME') { GAME1NUM += 1; } } console.log(GAME1NUM);
這是最簡單的方法,無需更改源數組
var GAME1NUM = "";
for(var i=0;i<json.participantIdentities.length;i++) {
if (json.participantIdentities[i].player.summonerName == ACTUALNAME) {
GAME1NUM = i;
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.