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 に答える