0

Ich möchte einen Algorithmus erstellen, die (hier Beispieldaten) Werte für dieses Objekt Schema repliziert:Extract Array Werte in Objekt dynamisch

let layer1 = {name: 'x', 
      values: [{_color: '#996666', time: 0, tween: 'quadEaseIn', value: 0}, 
        {_color: '#b074a0', time: 4, value: 5.500023}, 
        {_color: '#b074a0', time: 3, value: 4.500023}, 
        {_color: '#b074a0', time: 2, value: 3.500023}], 
      tmpValue: 3.500023, 
      _color: '#6ee167', 
      _value: 0}; 

3., 4. und 5. Zeile dieser Beispieldaten relevant ist das Problem.

Also dann unten ist der Algorithmus so weit. Die Variable numKeyframes ist bereits definiert (n). In der ersten Schleife werden dynamische Objekte zu einem Array namens Keyframes hinzugefügt.

In der zweiten Schleife ist das Keyframes-Array innerhalb des Layer-Objekts enthalten. Die Idee hierbei ist, dass Keyframes mehrere Objekte anstelle des Objekts einfügen sollen, in dem sie sich befinden (genau wie die obigen Beispielobjektdaten).

... 
    var keyframes = []; 
    var timevals = [1, 2, 3, 4, 5] 
    for (var k=0; k<numKeyframes; k++) { 
    var tv = timevals[k]; 
    var kf = {_color: '#FF0000', time: tv, value: 3.500023} 
    keyframes.push(kf); 
    } 

    // make x, y, z layers 
    for (var i=0; i<3; i++) { 
    layer = {name: layerNames[i], 
       values: [{_color: layerValuesColors[i], 
         time: layerValuesTime[i], 
         tween: 'quadEaseIn', 
         value: layerValuesValues[i]}, 
         keyframes], 
       tmpValue: layertmpValues[i], 
       _color: layerColors2[i], 
       _value: layerValues[i]} 
    layerData.push(layer); 
    } 
    ... 

Aber das funktioniert nicht. Es scheint, dass keine Objekte enthalten sind.

Wenn ich Keyframes], mit Keyframes [0]] ersetze, dann funktioniert es, aber natürlich bekommt es nur den ersten Wert (Objekt), wenn alle Werte (Objekte) eingefügt werden müssen.

Was ist der beste Weg, um darüber zu gehen?

Antwort

0

Ich denke, dass Sie keine Fehler in Ihrem Code haben, die alle nur die Datenstruktur mit console.dir Funktion zu überprüfen, wie folgend

console.dir(layerData); 
+0

korrekt ist, wird es nicht Fehler und console.dir (layerData) tut show objects ([object Object], [object Object], [object Object]) ... aber es sind die keyframes innerhalb von layerData, die mir die Frage stellen, wie man es richtig parst –

+0

Okay, ich habe es gerade versucht: console.dir ("layerData:" + JSON.stringify (layerData)); –

+0

zeigt, dass die Keyframes-Objekte geschachtelt werden. Zum Beispiel ist hier einer von ihnen: –

Verwandte Themen