次のように名前が付けられた配列のセットがありますquestion0, question1, question2
。など
。質問番号に対応する変数もあります。
question0
これで、名前全体を入力せずに配列にアクセスするにはどうすればよいでしょうか。たとえば、forループでは、ループ番号が5
、の場合、に対して操作を実行したいとしますquestion5
。これは本当に簡単なことですが、解決策を見つけることができませんでした。
次のように名前が付けられた配列のセットがありますquestion0, question1, question2
。など
。質問番号に対応する変数もあります。
question0
これで、名前全体を入力せずに配列にアクセスするにはどうすればよいでしょうか。たとえば、forループでは、ループ番号が5
、の場合、に対して操作を実行したいとしますquestion5
。これは本当に簡単なことですが、解決策を見つけることができませんでした。
連番で終わる変数は、通常、配列を使用するためのヒントです。代わりに配列の配列が必要なようですが、次のことができます。
doOperation(question[somenumber])
question
各アイテム自体が配列である大きな配列を使用しないのはなぜですか?
それはさておき、変数がグローバルである場合は、質問の番号であるwindow['question'+i]
を使用できます。i
サフィックスとして序数を含む変数名を使用しないでください。配列などの適切な構造を使用します。
var questions = ['why?', 'what?', 'where?'],
nr = 2; // the question number
alert(questions[nr]);
私の例では、各「質問」は文字列ですが、別の配列を含む他の構造にすることもできます。
question(n) の値を配列として持つ方が簡単だと思います。そこから、次のように使用できます:questions[i]
ここで、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]);
}
}