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?
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 –
Okay, ich habe es gerade versucht: console.dir ("layerData:" + JSON.stringify (layerData)); –
zeigt, dass die Keyframes-Objekte geschachtelt werden. Zum Beispiel ist hier einer von ihnen: –