Frage

Ich möchte ein neues Objekt erstellen und einige Eigenschaften für jedes Array innerhalb eines gewissen json gespeichert zuweisen. Ich habe arbeiten diese meistens außer ...

for (var i in json) {

            a = 0;
            a++;
            a = new Object();

            for (var key in json[i]) {
                var Key = key;
                var Value = json[i][key];
                a[Key] = Value;
            }
            a.outputProperties();
        }

Wenn ich Ausgang der Objekteigenschaften, alles nicht definiert ist.

Wenn ich ein einzelnes Objekt außerhalb der Schleife erstellen und die Eigenschaften zuweisen, scheint es zu funktionieren OK, außer dass der erste Satz von Eigenschaften mit dem folgenden überschrieben werden. Nicht sicher, warum ich nicht in der Lage sein, Objekte und Eigenschaften zuweisen innerhalb der Schleife erstellen dynamisch.

War es hilfreich?

Lösung 3

Dave Smith Antwort war ziemlich nahe, was ich brauche, aber es hat keine neue Objekte in der Schleife. Hier ist meine aktualisierte Code, um das gewünschte Ergebnis zu finden:

for (var i in json) {
            theGoods["obj"+i] = new Object();
            for (var key in json[i]) {
                theGoods["obj"+i][key] = json[i][key];
            }
            theGoods["obj"+i].outputProperties();
        }

Jedes neue Objekt nun in einem Array gespeichert ist, thegoods []; Ich kann jetzt das Objekt verweisen, indem etwas wie das Schreiben: theGoods["obj2"].someMethod();

Andere Tipps

Sie setzen eigentlich nie irgendwelche Eigenschaften von a. Sie haben soeben gesetzt Eigenschaften von sup2. Auf einer seitlichen Anmerkung haben Sie andere unnötige Sachen drin wie var Key = key; Try this:

for (var i in json) {
    var a = new supplement();
    for (var key in json[i]) {
        a[key] = json[i][key];
    }
    a.outputProperties();
}

Der Code wurde nicht richtig zu mir klebte sieht, im Sinne von es scheint nicht zusammen zu hängen.

Was haben diese drei Linien zu tun:

     a = 0;
     a++;
     a = new supplement();

Sie scheinen mit drei widersprüchliche Dinge zu tun. Meine Vermutung ist, dass eine hat bedeutet ein Index zu einer externen Sache zu sein, Sie zeigen nicht.

Was ist dann

     sup2

sein sollte, eine Beziehung zu der Ergänzung () Sie früher gemacht?

for (var i in json) {

        a = new supplement();

        for (var key in json[i]) {
            var Value = json[i][key];
            a[Key] = Value;
        }
        a.outputProperties();
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top