Я использую Angular Контроль дерева материалов и хотел бы объединить 2 jsons, прежде чем установить его. Я хочу объединить их на основе m_id, удалить дубликаты, а также отсортировать объекты внутри узлов на основе значения sort_id. Я пытался посмотреть на решения, предложенные в других темах, но не нашел, что они работают для глубоких структур. Мы будем благодарны за любую помощь / руководство.
Например:
JSON1:
var json1 = {
data: [{
name: "Node 1",
m_id: "node1",
sort_id: 9,
children: [{
name: "Node 1_1",
m_id: "node1_1",
sort_id: 6,
children: [{
name: "Node 1_1_1",
m_id: "node1_1_1",
sort_id: 9,
children: []
},
{
name: "Node 1_1_2",
m_id: "node1_1_2",
sort_id: 2,
children: []
}
]
},
{
name: "Node 1_2",
m_id: "node1_2",
sort_id: 3,
children: [{
name: "Node 1_2_1",
m_id: "node1_2_1",
sort_id: 1,
children: []
},
{
name: "Node 1_2_2",
m_id: "node1_2_2",
sort_id: 5,
children: []
}
]
}
]
},
{
name: "Node 2",
m_id: "node2",
sort_id: 6,
children: [{
name: "Node 2_1",
m_id: "node2_1",
sort_id: 3,
children: []
},
{
name: "Node 2_2",
m_id: "node2_2",
sort_id: 2,
children: []
}
]
}
]};
JSON2:
var json2 = {
data: [{
name: "Node 1",
m_id: "node1",
sort_id: 9,
children: [{
name: "Node 1_1",
m_id: "node1_1",
sort_id: 6,
children: [{
name: "Node 1_1_1",
m_id: "node1_1_1",
sort_id: 9,
children: []
},
{
name: "Node 1_1_3",
m_id: "node1_1_3",
sort_id: 5,
children: []
}
]
},
{
name: "Node 1_2",
m_id: "node1_2",
sort_id: 3,
children: [{
name: "Node 1_2_1",
m_id: "node1_2_1",
sort_id: 1,
children: []
},
{
name: "Node 1_2_2",
m_id: "node1_2_2",
sort_id: 5,
children: []
},
{
name: "Node 1_2_3",
m_id: "node1_2_3",
sort_id: 7,
children: []
}
]
}
]
},
{
name: "Node 4",
m_id: "node4",
sort_id: 8,
children: [{
name: "Node 4_1",
m_id: "node4_1",
sort_id: 4,
children: []
},
{
name: "Node 4_2",
m_id: "node4_2",
sort_id: 1,
children: []
}
]
}
]
};