ネストされた$ .eachを使用してオブジェクトをループする際に問題が発生しました。オブジェクトは、rootObjectの下にネストされた同じタイプ/クラスのオブジェクトのシリーズです。
オブジェクト
var rootObject ={};
rootObject.reportObject1.name = "reportObject1 Name";
rootObject.reportObject1.prop1 = "reportObject1 Prop1_Value";
rootObject.reportObject1.prop2 = "reportObject1 Prop2_Value";
rootObject.reportObject1.reportObjectA.name = "reportObjectA Name";
rootObject.reportObject1.reportObjectA.prop1 = "reportObjectA Prop1_Value";
rootObject.reportObject1.reportObjectA.prop2 = "reportObjectA Prop2_Value";
ループ
$.each(rootObject, function(index0, value0){
console.log(value0.name);
$.each(value0, function(index1, value1){
console.log(value1.name);
}
}
通報
value1.name
が、ループ内のname以外のオブジェクトプロパティを返しています。一見してvalue.nameをprop1
&prop2
に返すと、 "未定義"の値が返されます。デバッグ時に
value0
の値を調べると、value0
はネストされたループに入るときに値が緩やかに見えます。すなわち、親ループからのconsole.log(value1.name)
、value0
で、undefined
となる。- デバッグ中に子ループ(
index1, value1
)に見て、私は
value1
は今
value0.name
に等しいことがわかり、そして
index1
は、「名前」に等しいです。
1.明確化を、私は実際にコンストラクタを使用して両親をインスタンス化しています: 'rootObject.reportObject1.reportObjectA =新しいreportObject() ; ' console.logを使用して' rootObject'を出力すると値が表示されます。 2.私のコードに閉じ括弧があります。私はこの例でそれを入力するのを忘れました。 – Oxossi
2。私は自分のコードに閉じ括弧を持っています。私はこの例でそれを入力するのを忘れました。 – Oxossi
3. 'undefined(x3)'はどこから来たのですか?そのビットは私の結果では正確ですが、なぜそれらのプロパティを印刷していますか? – Oxossi