如何通過打字稿或javascript將物件陣列推送和排序到樹?
我有 3 個來自 API 的物件陣列,如下所示:
const dataParts = [
{
"id": 1,
"title": "Part 1",
"chapterID": [11,12],
"order": 1,
},
{
"id": 2,
"title": "Part 2",
"chapterID": [13],
"order": 2
}
]
const dataChapters = [
{
"id": 11,
"title": "Chapter 1"
"criteriasID": [15,16]
"order": 1,
},
{
"id": 12,
"title": "Chapter 2",
"criteriasID": [],
"order": 2,
},
{
"id": 13,
"title": "Chapter 1",
"criteriasID": [],
"order": 1,
}
]
const dataCriterias = [
{
"id": 15,
"title": "criteria 1",
"order": 1,
},
{
"id": 16,
"title": "criteria 2",
"order": 2,
}
]
如何推送元素并按“順序”屬性對其進行排序?
結果我想要這樣:
const dataTree = [
{
"id": 1,
"title": "Part 1",
"chapterID": [11,12],
"order": 1,
"children": [
{
"id": 11,
"title": "Chapter 1"
"criteriasID": [15, 16]
"order": 1,
"children": [
{
"id": 15,
"title": "criteria 1",
"order": 1,
},
{
"id": 16,
"title": "criteria 2",
"order": 2,
}
]
},
{
"id": 12,
"title": "Chapter 2",
"criteriasID": [],
"order": 2,
"children": []
}
]
},
{
"id": 2,
"title": "Part 2",
"chapterID": [13],
"order": 2,
"children": [
{
"id": 13,
"title": "Chapter 1",
"criteriasID": [],
"order": 1,
}
]
}
]
你對這個問題有什么想法嗎?遞回可以做這個問題嗎?請幫助我,因為這是我的畢業論文
謝謝你的幫助??
uj5u.com熱心網友回復:
您可以使用map&forEach回圈來獲得所需的結果。在地圖內,您會找到該物件并將其附加到 children 屬性。
const dataParts = [{"id": 1,"title": "Part 1","chapterID": [11,12],"order": 1,},{"id": 2, "title": "Part 2", "chapterID": [13], "order": 2 } ]
const dataChapters = [{"id": 11,"title": "Chapter 1","criteriasID": [15,16],"order": 1,},{"id": 12, "title": "Chapter 2", "criteriasID": [], "order": 2, }, { "id": 13, "title": "Chapter 1", "criteriasID": [], "order": 1,} ]
const dataCriterias = [{"id": 15,"title": "criteria 1","order": 1,},{"id": 16, "title": "criteria 2", "order": 2, } ];
const find =(arr, obj) => arr.map(a=>obj.find(l=>l.id==a));
const result = dataParts.map(o=>{
let children = find(o.chapterID, dataChapters);
children.forEach(t=>{
t.children = find(t.criteriasID, dataCriterias)
});
return {...o, children}
});
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/514787.html
上一篇:序言中串列的排序串列?
