0

我将值添加到数组中,如下所示:

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
}

这会出现未定义的错误;

但如果我不使用“i”变量而是使用数字,则信息显示正确的值:

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

为什么 for 循环不显示错误?我在这里想念什么?

谢谢你的帮助。

4

1 回答 1

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 标签也很有帮助。

于 2012-05-07T22:28:55.527 回答