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