【问题标题】:creating a tree view based on parent_id根据 parent_id 创建树视图
【发布时间】:2021-11-25 15:15:54
【问题描述】:

我有一个地图列表,我正在努力构建一个 html 树,单击一个元素后,它会显示其子元素的列表。做这种事情的最佳方法是什么?

例如: 我们有一个地图列表: [%Person{name: "name1", id: 1, parent_id: nil}, %Person{name: "name2", id: 2, parent_id: 1},%Person{name: "name3", id: 3, parent_id: 2}]

我想得到这样的东西:

name1 ↓
       name2 ↓
              name 3

我将不胜感激!

【问题讨论】:

    标签: html tree elixir phoenix


    【解决方案1】:

    这可能是一个棘手的问题,因为如果您需要遍历树的最后一片叶子,则必须多次遍历列表(我会让其他人告诉您确切的 O(n))。

    但是,如果您只需要显示您的问题所暗示的直系子女,Enum.filter/2 是您的朋友。您可以编写一个函数来接受人员列表和您希望查看其孩子的父母的 ID。

    例如,如果您希望查找根目录下的所有人(parent_id = nil):

    iex> parent_id = nil 
    nil
    iex> Enum.filter(people, fn %{parent_id: id} -> id == parent_id end)
    [%{id: 1, name: "name1", parent_id: nil}]
    

    【讨论】:

    • 非常感谢您的帮助!这解决了我的问题并大大缩短了我之前的代码!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多