我有一組以下列方式命名的數組:question0, question1, question2
等
我也有一個對應於問題編號的變量。訪問特定數組
有了這個,我將如何訪問陣列question0
而不必輸入整個名稱。例如,在for循環中,如果循環編號爲5
,我想在question5
上執行一個操作。我知道這很簡單,但我一直無法找到解決方案。
我有一組以下列方式命名的數組:question0, question1, question2
等
我也有一個對應於問題編號的變量。訪問特定數組
有了這個,我將如何訪問陣列question0
而不必輸入整個名稱。例如,在for循環中,如果循環編號爲5
,我想在question5
上執行一個操作。我知道這很簡單,但我一直無法找到解決方案。
爲什麼不使用大陣列question
,其中每個項目它本身就是一個數組?
除此之外,如果變量是全局的,則可以使用window['question'+i]
,其中i
是問題的編號。
一個數組中的數組?不,我們必須更深入! –
以連續數字結尾的變量通常是使用數組的提示。聽起來像是你需要一個數組的數組,而不是,然後你可以:
doOperation(question[somenumber])
當我做一個操作時說:BigArray [0] .push(object),而數組'question0'是BigArray [0]上的對象,全局question0數組是否也會被更新? –
@MannyNarton:是的。 (但是你可能不應該再需要一個全局的'question0'了......) – Ryan
不要用序數作爲其後綴使用的變量名;使用適當的結構,諸如數組:
var questions = ['why?', 'what?', 'where?'],
nr = 2; // the question number
alert(questions[nr]);
在我的例子中,每個「問題」是一個字符串,但它可以是任何其它的結構,包括另一個陣列。
我認爲將問題(n)值作爲數組會更簡單。從那裏你可以使用以下內容:questions[i]
其中我代表當前循環數,從而改善操作。
var questions = [["What?", "Why?"], ["When?", "How?"]];
for(var i = 0; i < questions.length; i++) {
for(var j = 0; j < questions[i].length; j++) {
console.info(questions[i][j]);
}
}
它可以用'eval'完成,但它不應該。 – gdoron
您是否在尋找[forEach](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/forEach)? –
爲什麼你不會有一個數組的數組呢?還是地圖? –