使用变量作为 JSON 键

Mar*_*arc 1 javascript json

我想缩短我的代码,但我被卡住了。我有一个测验,每个问题的答案都已加载。但我想要一个变量来为我做这件事。

这是代码:

if (nr === 1) {
    $('#questionmobile').html(content.inst3.question1);
    $('#answer1').html(content.inst3.q1a1);
    $('#answer2').html(content.inst3.q1a2);
    $('#answer3').html(content.inst3.q1a3);
    $('#answer4').html(content.inst3.q1a4);
} else if (nr === 2) {
    $('#questionmobile').html(content.inst3.question2);
    $('#answer1').html(content.inst3.q2a1);
    $('#answer2').html(content.inst3.q2a2);
    $('#answer3').html(content.inst3.q2a3);
    $('#answer4').html(content.inst3.q2a4);
}......
Run Code Online (Sandbox Code Playgroud)

如您所见,它非常多余,所以我想包括包含问题数量信息的变量“nr”。所以我想要这样的东西:

$('#questionmobile').html(content.inst3.question+nr);
$('#answer1').html(content.inst3.q+nr+a1);
Run Code Online (Sandbox Code Playgroud)

串联+nr+不起作用,因为它没有指向正确的 JSON 内容。

for*_*son 5

[]如果您想使用变量作为键,您可以使用括号表示法(如数组,)。

$('#questionmobile').html(content.inst3['question'+nr]);
$('#answer1').html(content.inst3['q'+nr+'a1']);
Run Code Online (Sandbox Code Playgroud)

您甚至可以使用循环来回答:

$('#questionmobile').html(content.inst3['question'+nr]);

var i, numAnswers = 4;
for(i = 1; i <= numAnswers; i++) {
    $('#answer' + i).html(content.inst3['q'+nr+'a'+i]);
}
Run Code Online (Sandbox Code Playgroud)