Tôi cần tạo hàm để có thể chuyển đổi đối tượng phẳng thành đối tượng đệ quy. Dưới đây là ví dụ của tôi: Tôi có mảng phẳng:Chuyển cấu trúc phẳng sang phân cấp
var flatArray = [
{
Description: "G",
guid: "c8e63b35",
parent: null,
},
{
Description: "Z",
guid: "b1113b35",
parent: "c8e63b35",
},
{
Description: "F",
guid: "d2cc2233",
parent: "b1113b35",
},
{
Description: "L",
guid: "a24a3b1a",
parent: null,
},
{
Description: "K",
guid: "cd3b11caa",
parent: "a24a3b1a",
},
]
kết quả nên là:
recursiveArray = [
{
Description: "G",
guid: "c8e63b35",
parent: null,
Children: [
{
Description: "Z",
guid: "b1113b35",
parent: "c8e63b35",
Children: [
{
Description: "F",
guid: "d2cc2233",
parent: "b1113b35",
}
]
},
]
},
{
Description: "L",
guid: "a24a3b1a",
parent: null,
Children: [
{
Description: "K",
guid: "cd3b11caa",
parent: "a24a3b1a",
}
}
]
Xin hãy giúp tôi tìm ra cách để làm điều đó. Một thuật toán làm việc sẽ được đánh giá cao, bởi vì tôi có vấn đề với hiểu làm thế nào để làm điều này một cách chính xác. Trong mỗi trường hợp, tôi cần phải tìm một vị trí cụ thể cho phần tử được kiểm tra trong cấu trúc đệ quy và đẩy nó vào mảng phần tử con tìm thấy. Tôi nghĩ rằng điều này là ngu ngốc và không hiệu quả. Có cách nào để làm điều này nhanh chóng và hiệu quả không?
Chỉnh sửa: Mảng đệ quy có định dạng sai. Bây giờ nó sẽ ổn thôi. Mảng của tôi không sắp xếp theo bất kỳ cách nào.
bạn có thể làm một cái gì đó như: 'var recoursiveArray = []; recoursiveArray.push (flatArray [0]); recoursiveArray [0] .children = []; recoursiveArray [0] .children.push (flatArray [1]); ' –
Không phải đối tượng' 'L'' có '' c8e63b35'' làm cha mẹ, không phải' null'? – Oka
là mảng của bạn được sắp xếp theo một cách nào đó? – franciscod