无法使用for循环获取数组值

时间:2012-05-07 22:23:00

标签: arrays loops undefined

我将数值添加到数组中:

ansArray = {question:id[count], answer: 'a'};

,控制台显示如下结果:

(
    {
        answer = a;
        question=1;
    },
    {
        answer =d;
        question=2;
    }
    //......

    //.......
)

我使用了这样的for循环:

for (i=0;i<20;i++){
    alert(ansArray[i].answer); //This comes with undefined error
    alert(ansArray[i].question); //undefined
}

这会出现未定义的错误;

但如果我不使用&#39; i&#39;变量并使用数字代替,信息显示正确的值:

 alert(ansArray[0].answer); //shows correct value
 alert(ansArray[1].question); //shows correct value

for循环显示错误的原因是什么?我在这里错过了什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您的第一个问题是您的ansArray变量不是数组,而是对象。您将其声明如下:

ansArray = {question:id[count], answer: 'a'};

这是创建一个带有问题字段和答案字段的对象。您可以声明这样的对象:

someObject = {};

你可以像这样声明数组:

someArray = [];

所以,你可能意味着有类似的东西:

ansArray = [{question:0, answer:'a'}];

这会给你一个包含单个对象的数组。我猜你想要这样的东西:

var ansArray = [];
ansArray[0] = {question:0, answer:'a'};
ansArray[1] = {question:1, answer:'d'};
...
ansArray[19] = {question:19, answer:'b'};

您可以使用原始循环代码循环播放此代码。使用javascript标签也很有帮助。