动态数组数组

时间:2015-07-08 03:41:23

标签: javascript arrays

我正在创建一个在线测试页面,想要捕获错误的答案并推入另一个阵列。我的代码如下。我究竟做错了什么?提前谢谢。

var ar, wqs, wqpos = 0;
var oneq = new Array(5);
function renderQuestion()
{
    test = _("test");
  if(pos >= ar.length)
  {
    _("test_status").innerHTML = "Test Completed";
    pos = 0;
    correct = 0;
    wqpos = 0;
    return false;
   }
question = ar[pos][1];
..... rest of code
<input type='radio' name='choices' value='A'> "+chA+"<br>;
...... rest of code
<button onClick='checkAnswer()'>Submit Answer</button>;
}   
 function checkAnswer()
{
choices = document.getElementsByName("choices");
for(var i=0; i<choices.length; i++)
{
    if(choices[i].checked)
    {
        choice = choices[i].value;
    }
}
if(choice == ar[pos][5])
{
    correct++;
}
else
{
oneq = [ar[pos][1], ar[pos][2], ar[pos][3], ar[pos][4], ar[pos][5]];

问题是接下来的两行:

wqs[wqpos] = [oneq[0], oneq[1], oneq[2], oneq[3], oneq[4]];
wqpos++;
}
pos++;
renderQuestion();
}

1 个答案:

答案 0 :(得分:0)

锶。我不明白你的问题,我是否能解决它。 但是,我读了你的代码,我认为方法renderQuestion()有问题。这是因为:

var ar, wqs, wqpos = 0; // ar is undefined

所以,在方法renderQuestion()中检查:

if(pos >= ar.length) // ar.length is error: Uncaught TypeError, because ar is undefined

我认为你应该为变量设置默认值。

感谢。