Jay*_*Jay 9 javascript algorithm tree rotation data-structures
我认为这是一个有趣的问题.
基本上,我有一个项目列表,其中每个项目都有一组固定的元数据,具有不同的值.
例如:
现在,就目前而言,该项目清单已展平并显示在表格中.
但是,我们希望找到一种方法来允许用户在树中浏览它,但是通过增加的灵活性,他们可以"转动"每个元数据标签的顺序出现在树中.
所以,最初可能看起来像:
Items
+ Table
+ User A
+ 04/05/2006
-> Item 2
-> Item 2
-> Item 2
+ Text
+ User A
+ 03/03/2003
-> Item 1
-> Item 1
+ User B
+ 05/07/2007
-> Item 4
-> Item 4
-> Item 1
-> Item 4
+ Image
..
Run Code Online (Sandbox Code Playgroud)
但是,假设用户想要将其翻转并查看与特定用户相关的所有项目:
Items
+ User A
+ Text
+ Table
-> Item 1
-> Item 2
+ User B
+ Image
+ Text
-> Item 3
-> Item 4
Run Code Online (Sandbox Code Playgroud)
等等.
我希望这是有道理的.
那么,我想知道的是,是否有最佳实践方法以低成本实现这一目标?每个'翻转/随机播放/转轴'的结果很好地表示在树中,因此显然首先想到的是当用户请求更改表示时,可以根据需要生成项目列表的新树.但是,我希望也许有更好的方法,只需旋转一棵树等.
另外,如果后端只是简单地返回一个项目的平面列表,那么可以通过用户浏览器的JavaScript以便宜的方式完成这项工作吗?
非常感谢和亲切的问候,
杰米
我解决这个问题的方法是定义一个看起来像这样的列表项:
public class Item
{
string NodeName {get; set;}
string Url {get; set;}
List<Item> Children {get; set;}
}
Run Code Online (Sandbox Code Playgroud)
这是 C# 代码,但这个想法应该适用于任何支持对象的语言。现在你的列表只需要支持一种类型的列表,那就是一个列表,Item
所以你需要做的就是找到一种方法将你的数据转换为这样的列表。