Merging and Restructuring Nested Objects with Aggregation

JavaScript Hard objects

任务 «Merging and Restructuring Nested Objects with Aggregation»

编写一个函数,该函数接受一个对象数组,每个对象包含字段:id(数字)、parentId(数字或null)、name(字符串)和value(数字)。需要构建一棵树,其中每个节点包含字段id、name、value(所有子节点value之和加上自身value)、children(子节点数组,按name字母顺序排序)。根节点为parentId = null的节点。如果parentId未找到,则忽略该对象。如果多个对象具有相同的id,只保留第一个。将结果树输出为JSON字符串(无空格)。保证存在且仅有一个根节点。

输入格式

第一行是数字 N(对象的数量)。接下来 N 行,每行格式为:id parentId name value(字段由空格分隔,name 是不含空格的字符串)。

输出格式

一行——树根节点的JSON表示(包含嵌套的children)。

示例

示例 1

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