Zusammenführung und Umstrukturierung verschachtelter Objekte mit Aggregation

JavaScript Hard objects

Aufgabe «Zusammenführung und Umstrukturierung verschachtelter Objekte mit Aggregation»

Schreiben Sie eine Funktion, die ein Array von Objekten mit den Feldern: id (Zahl), parentId (Zahl oder null), name (Zeichenkette) und value (Zahl) akzeptiert. Es muss ein Baum erstellt werden, wobei jeder Knoten die Felder id, name, value (Summe der value aller Kindknoten und des eigenen value), children (Array von Kindknoten, alphabetisch nach name sortiert) enthält. Als Wurzel gilt der Knoten mit parentId = null. Wenn parentId nicht gefunden wird, wird das Objekt ignoriert. Wenn mehrere Objekte dieselbe id haben, wird nur das erste behalten. Geben Sie den resultierenden Baum als JSON-Zeichenkette (ohne Leerzeichen) aus. Es wird garantiert, dass es genau eine Wurzel gibt.

Eingabeformat

Erste Zeile — Zahl N (Anzahl der Objekte). Dann N Zeilen, jede im Format: id parentId name value (Felder durch Leerzeichen getrennt, name ist eine Zeichenkette ohne Leerzeichen).

Ausgabeformat

Eine Zeile — JSON-Darstellung des Wurzelknotens des Baumes (mit verschachtelten children).

Beispiele

Beispiel 1

EINGABE
3 10 null A 100 20 10 B 50 30 10 C 30
AUSGABE
{"id":10,"name":"A","value":180,"children":[{"id":20,"name":"B","value":50,"children":[]},{"id":30,"name":"C","value":30,"children":[]}]}
main.js