【发布时间】:2021-11-14 22:17:45
【问题描述】:
我有以下未排序的文件结构:
const files: File[] = [
{info: {name: "Part 3"},
contents:
[
{info: {name: "05 Chapter"}, contents: [], isHidden: false},
{info: {name: "10 Chapter"}, contents: [], isHidden: false},
{info: {name: "03 Annex"}, contents: [], isHidden: false}
],
isHidden: false
},
{info: {name: "Part 1"},
contents:
[
{info: {name: "05 Chapter"}, contents: [], isHidden: false},
{info: {name: "10 Annex"}, contents: [], isHidden: false},
{info: {name: "03 Chapter"}, contents: [], isHidden: false}
],
isHidden: false}
]
我想根据另一个输入对象(它是一个简单的书签结构对象)按 files.info.name 对这个未排序的文件树对象进行排序,如下所示:
const bookmark = [
{
part: "Part 1",
chapters:
[
{
name: "03 Annex",
chapters: []
},
{
name: "05 Chapter",
chapters: []
},
{
name: "10 Chapter",
chapters: []
}
]
},
{
part: "Part 3",
chapters:
[
{
name: "03 Chapter",
chapters: []
},
{
name: "05 Chapter",
chapters: []
},
{
name: "10 Annex",
chapters: []
}
]
}
]
到目前为止,我有以下内容,但我认为这不会通过每个级别。
// sortFilesByBookmark sorts the files to show by a given bookmark object
export function sortFilesByBookmark(files: File[], bookmark){
files.sort(function(a, b){
return bookmark.indexOf(a.info.name) - bookmarkArray.indexOf(b.info.name);
});
}
【问题讨论】:
标签: javascript typescript sorting