如何高效地将具有递归关系的项目关联起来?

问题描述 投票:0回答:0

问题描述:

  • 我调用一个 api 来获取一大堆书籍。
    • 每本书都有一个 ISBN 号(例如:1771642483)
  • 当我调用 api 时,每本书都有一个“之前的书”类型字段,它告诉我们一系列中之前的书:书籍要求,它返回一个包含类似
    requiredBooks: [{book: {id: 12345678901, name: Book Title 1}}]
  • 之类内容的数组
  • 所以回复看起来像这样:
[
  {
    id: 'ISBN#1'
    name: 'Book Title 1'
    readingLevel: 5
    requiredBooks: []
  },
  {
    id: 'ISBN#2'
    name: 'Book Title 2'
    readingLevel: 5
    requiredBooks: [
      {
        book: {id: 'ISBN#1', name: 'Book Title 2'}
      }
    ]
  },
  {
    id: 'ISBN#3'
    name: 'Book Title 3'
    readingLevel: 5
    requiredBooks: [
      {
        book: {id: 'ISBN#2', name: 'Book Title 3'}
      }
    ]
  },
]

我正在寻找一种有效的方法来对 300 多本书进行排序并创建将它们链接在一起的路径。也许有两个早期系列的衍生书(书 X)(书 A 和书 B 是每个系列中的最后一本书),它将书 A 和书 B 都标识为必读书籍。

我所拥有的只是 api 调用。我想使用 Java/JS/ruby/C#/python 来解决这个问题,而不必设置数据库并不断更新它,但这里的任何知识都会有帮助

  • 我想做的事情可能存在并且有一个名字,所以可以帮助我定义这个问题的是知道我想做的事情叫什么。 (涉及递归关系?)

我做了什么: 我尝试过循环所有内容,如果它没有相关项目,它就会成为更大数组中自己的数组。如果这是一本包含必读书籍的书,我会查找该必读书籍,并将当前书籍作为数组中的下一个索引。这看起来效率很低

javascript java performance optimization relationship
© www.soinside.com 2019 - 2024. All rights reserved.