簡體   English   中英

有人可以幫我簡化嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM