0

次の単純な構造のように、内部にオブジェクトがネストされたオブジェクトを作成したいと考えています。

var obj:Object = {
  exercise : {
    question0 : {}
    question1 : {}
    question2 : {}
    question3 : {}
  }
};

次に、これらのオブジェクトに、次のような XML のコンテンツを使用してプロパティを動的に割り当てます。

for (var i:uint=0; i<4; i++) {
                    
  obj.exercise["question"+i].original = varXML.texts.exercise.question[i].original.@text;
  obj.exercise["question"+i].example = varXML.texts.exercise.question[i].example.@text;
  obj.exercise["question"+i].answer = varXML.texts.exercise.question[i].answer.@text;
}

このコードはうまく機能します。それが私が知っている方法です。ただし、questionオブジェクトの数は動的であり、メイン オブジェクトの構造を定義する方法を見つけることができません。したがって、、、、、、などquestion0を最初から宣言したくありません(そうしないとエラーが発生します)。question1question2question3question4

これを行うだけでvar objSenTense:Object = {};は、どちらも役に立ちません。これどうやってするの?

4

3 に答える 3

1

質問の配列を使用しないのはなぜですか?

var obj:Object = {
  exercise : {
    questions:[]
  }
};

for (var i:uint=0; i<4; i++) {

    var question:Object = {};
    question.original = varXML.texts.exercise.question[i].original.@text;
    question.example = varXML.texts.exercise.question[i].example.@text;
    question.answer = varXML.texts.exercise.question[i].answer.@text;
    obj.exercise.questions.push(question);
}
于 2013-05-07T15:47:12.630 に答える
1

編集する前に、オブジェクトの作成を強制できます。

if (!obj.exercise.hasOwnProperty("question"+i))
{
   obj.exercise["question"+i] = {};
}
obj.exercise["question"+i].original = varXML.texts.exercise.question[i].original.@text;
obj.exercise["question"+i].example = varXML.texts.exercise.question[i].example.@text;
obj.exercise["question"+i].answer = varXML.texts.exercise.question[i].answer.@text;
于 2013-05-07T15:53:49.943 に答える