我有一组以下列方式命名的数组: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)? –
为什么你不会有一个数组的数组呢?还是地图? –