亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將巨大的 if 語句變量重構為數組

將巨大的 if 語句變量重構為數組

哆啦的時光機 2022-08-27 15:19:45
我想將這些變量重構為數組,因為它看起來很臃腫,但不知道這樣做的最佳做法,因為它們太多了。請看一看,讓我知道你認為我應該如何去做。VS_group = "group";if (VS_group == "group") {                    V1_IC11 = getAnswerCode('INBOARD_111_COUNT');                    V1_IC12 = getAnswerCode('INBOARD_112_COUNT');                    V1_IC13 = getAnswerCode('INBOARD_113_COUNT');                    V1_IC14 = getAnswerCode('INBOARD_114_COUNT');                    V1_IC15 = getAnswerCode('INBOARD_115_COUNT');                    V1_IC16 = getAnswerCode('INBOARD_116_COUNT');                    V1_IC17 = getAnswerCode('INBOARD_117_COUNT');                    V1_IC18 = getAnswerCode('INBOARD_118_COUNT');                    V1_IC19 = getAnswerCode('INBOARD_119_COUNT');                    V1_IC20 = getAnswerCode('INBOARD_120_COUNT');                    V1_IC31 = getAnswerCode('INBOARD_131_COUNT');                    V1_IC32 = getAnswerCode('INBOARD_132_COUNT');                    V1_IC33 = getAnswerCode('INBOARD_133_COUNT');                    V1_IC34 = getAnswerCode('INBOARD_134_COUNT');                    V1_IC35 = getAnswerCode('INBOARD_135_COUNT');                    V1_IC36 = getAnswerCode('INBOARD_136_COUNT');                    V1_IC37 = getAnswerCode('INBOARD_137_COUNT');                    V1_IC38 = getAnswerCode('INBOARD_138_COUNT');                    V1_IC39 = getAnswerCode('INBOARD_139_COUNT');                    V1_IC40 = getAnswerCode('INBOARD_140_COUNT');                    V2_IC11 = getAnswerCode('INBOARD_211_COUNT');                }
查看完整描述

4 回答

?
翻過高山走不出你

TA貢獻1875條經驗 獲得超3個贊

只需記下使用兩次的兩個范圍即可。然后循環訪問這些范圍并將結果保存到對象中以供參考。


const lower = [11, 31];

const upper = [20, 40];

const vs = [1, 2];

const vsGroup = {};

for (let vn = 0; vn < vs.length; vn++) {

  for (let i = 0; i < lower.length; i++) {

    for (let j = lower[i]; j <= upper[i]; j++) {

      vsGroup["V" + vs[vn] + "_IC" + j] = 'getAnswerCode(INBOARD_' + vs[vn] + '' + j + '_COUNT)';

    }

  }

}

console.log(vsGroup);

(getAnswerCode 保留為字符串,只是為了顯示調用的外觀)


查看完整回答
反對 回復 2022-08-27
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

如果您創建一個代碼數組,則可以將其映射到答案,如下所示:


const codesINeed = ["INBOARD_111_COUNT", "INBOARD_112_COUNT"];// (etc)

const answerCodes = codesINeed.map(getAnswerCode);

// answerCodes is an array of answer codes with the same order as codesINeed


查看完整回答
反對 回復 2022-08-27
?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

你可以像這樣創建一個數組:


let vs_group = 

[

  {

     "name": "V1_IC11",

     "value": "INBOARD_111_COUNT"

  },

  {

     "name": "V1_IC12",

     "value": "INBOARD_112_COUNT"

  } 

  ...

]


查看完整回答
反對 回復 2022-08-27
?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

您可以將所有代碼放在一個數組中,并對其進行映射,以為每個代碼創建一個對象,并具有代碼和相關答案。這樣,您就不會忘記哪個答案與哪個代碼一起使用。


// sample function for demo

function getAnswerCode(x) {

  return "answer for " + x;

}


const codes = ['INBOARD_111_COUNT',

'INBOARD_112_COUNT',

'INBOARD_113_COUNT'] // and the rest


const answers = codes.map(code => { return { code, answer: getAnswerCode(code)  }})


console.log(answers);


// You can later get what you need using filter:


const answerFor112 = answers.filter(a => a.code === 'INBOARD_112_COUNT')[0].answer;


console.log("Sample answer requested: " + answerFor112);


查看完整回答
反對 回復 2022-08-27
  • 4 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號