我有一个bookshelf
API,其中的方法可以返回代表书籍的List
的排序不可变Maps
。反过来,这些书Maps
有方法返回其章节的排序不可变Lists
,依此类推每章的页面。
我正在尝试编写一个迭代每个嵌套列表的方法展平其项目,并将这些项目按原始顺序连接在一个单一级别的列表中。但是,我无法使用flatten()
,因为它会损坏Maps
。这就是我提出的,但它看起来并不优雅。
Immutable在其API中是否有能够实现以下目标的东西?
let sortedCollection = List();
bookshelf.getSortedBooks().forEach((book) => {
sortedCollection = sortedCollection.push(book);
bookshelf.getSortedChapters(book.getId()).forEach((chapter) => {
sortedCollection = sortedCollection.push(chapter);
bookshelf.getSortedPages(book.getId(), chapter.getId()).forEach((page) => {
sortedCollection = sortedCollection.push(page);
});
});
});
return sortedCollection; // [book1, chapter1, page1, chapter2, page1, page2 ... book2]