У меня есть несколько наборов массивов. Каждый набор начинается с того же слова:
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');