Ich habe diesen Datensatz:die Attribute eines Arrays von Objekten in Javascript
var dataset = [
{time: "t1", val1: 0, val2: 0, val3: 1},
{time: "t2", val1: 0, val2: 0, val3: 4},
{time: "t3", val1: 1, val2: 0, val3: 0},
{time: "t4", val1: 3, val2: 0, val3: 0},
{time: "t2", val1: 0, val2: 3, val3: 0},
{time: "t4", val1: 0, val2: 2, val3: 0},
{time: "t5", val1: 2, val2: 0, val3: 0},
....
];
Ich mag den Datensatz unique Zeiteinträge zu reduzieren, sondern auch die Werte pro Zeitschritt kombinieren. Das Ergebnis muss wie folgt aussehen:
var dataset = [
{time: "t1", val1: 0, val2: 0, val3: 1},
{time: "t2", val1: 0, val2: 3, val3: 4},
{time: "t3", val1: 1, val2: 0, val3: 0},
{time: "t4", val1: 3, val2: 2, val3: 0},
{time: "t5", val1: 2, val2: 0, val3: 0},
....
];
Ich habe versucht, some mit dem Verfahren reduzieren() basierend auf anderen SO-Beiträge:
dataset.reduce(function(r,o){
var key = o.Date;
var newObj = o;
if (r[key] || (r[key]=[])) r[key].push(o);
return r;
}, []);
console.log(dataset);
Es reduziert die Datenmenge auf 5 Einträge, aber die Struktur ist nicht genau wie ich es will und ich kann die Objektwerte nicht kombinieren.
Jede Hilfe wird geschätzt.
Was, wenn es t3' Objekte und zwei von ihnen drei 'enthalten wäre z.B. 'val2' Eigenschaft. Welcher sollte benutzt werden? –
Dann sollten sie zusammengefasst werden. – 3TW3