Ich habe Probleme beim Durchlaufen eines Objekts mit einem verschachtelten $ .Each. Das Objekt ist eine Reihe von Objekten desselben Typs/derselben Klasse, die unter rootObject verschachtelt sind.
Das Objekt
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";
The Loop
$.each(rootObject, function(index0, value0){
console.log(value0.name);
$.each(value0, function(index1, value1){
console.log(value1.name);
}
}
Das Problem
value1.name
gibt andere Objekteigenschaften als name in der Schleife zurück. Es versucht anscheinend, value.name fürprop1
&prop2
zurückzugeben, resultierend in "undefined" Werten.Wenn Sie den Wert
value0
während des Debuggings betrachten, scheintvalue0
seinen Wert zu verlieren, da er in die verschachtelte Schleife eintritt. Beiconsole.log(value1.name)
,value0
, wird aus der Elternschleifeundefined
;Wenn sie in die Kinderschleife (
index1, value1
) während des Debuggens suchen, ich sehe, dassvalue1
value0.name
jetzt gleich, undindex1
gleich „name“.
1. Klärung, ich bin Instanziieren eigentlich die Eltern mit einem Konstruktor: 'rootObject.reportObject1.reportObjectA = new Report() ; ' Ich sehe Werte, wenn ich' rootObject' mit console.log drucke 2. Ich habe die schließende Klammer in meinem Code. Ich habe vergessen, es in diesem Beispiel einzugeben. – Oxossi
2.Ich habe die schließende Klammer in meinem Code. Ich habe vergessen, es in diesem Beispiel einzugeben. – Oxossi
3. Woher kommt das 'undefined (x3)'? Dieses Bit ist in meinen Ergebnissen korrekt, aber warum druckt es diese Eigenschaften? – Oxossi