簡體   English   中英

如何使用變量構建數組名稱?

[英]How do I use a variable to build an array name?

我有幾組數組。 每組以相同的單詞開頭:

var firstarrayquestions = ["", "", ""];
var firstarrayanswer1 = ["", "", ""];
var firstarrayanswer2 = ["", "", ""];

var secondarrayquestions = ["", "", ""];
var secondarrayanswer1 = ["", "", ""];
var secondarrayanswer2 = ["", "", ""];

(...等等...)

這可能是一個有明顯解決方案的問題,但如果我想要一個處理每個數組顯示問題和答案的函數,我該怎么編碼呢? 像這樣的東西:

function handleQuestion(myStr) {
    var randomstart = 0; //just for example
    $('#question').text(myStr + arrayquestions[randomstart]);
    $('#q1').text(myStr + arrayanswer1[randomstart]);
    $('#q2').text(myStr + arrayanswer2[randomstart]);
}

handleQuestion('first');

非常感謝!

如果你知道范圍,你可以使用括號表示法

function handleQuestion(myStr) {
    var randomstart = 0; //just for example
    $('#question').text(window[myStr + 'arrayquestions'][randomstart]);
    $('#q1').text(window[myStr + 'arrayquestions'][randomstart]);
    $('#q2').text(window[myStr + 'arrayquestions'][randomstart]);
}

handleQuestion('first');

但為什么不使用一個對象

var questions = {
    first: {
         questions : ["", "", ""],
         answer1   : ["", "", ""],
         answer2   : ["", "", ""]
    },
    second: {
         ...etc
    }
}

這樣你就可以訪問它們:

function handleQuestion(myStr) {
    var randomstart = 0; //just for example
    var obj = questions[myStr];

    $('#question').text(obj.questions[randomstart]);
    $('#q1').text(obj.answer1[randomstart]);
    $('#q2').text(obj.answer2[randomstart]);
}

handleQuestion('first');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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