Javascript 前端组件树型数据结构的实现

Javascript 前端组件树型数据结构的实现,javascript,data-structures,Javascript,Data Structures,我正在尝试设计一个简单的web应用程序。用户会看到一个有两个或三个可能答案的问题。根据他们的回答,他们会被带到另一个问题 i、 e 在我看来,这就像一棵树,每个问题和答案都是一个节点,取决于你走哪条路,你会遇到一组特定的其他问题/答案 我试图弄清楚如何用可重用的React组件实现这一点。我可以为每个问题创建一个组件,但这似乎不是一个好的做法。有没有人有过制作这种“选择你自己的冒险”式问卷的经验?你可以使用一个可以为每个答案保存下一个问题的答案。 在您的情况下,条目可以是[ChoiceA,问题2]

我正在尝试设计一个简单的web应用程序。用户会看到一个有两个或三个可能答案的问题。根据他们的回答,他们会被带到另一个问题

i、 e

在我看来,这就像一棵树,每个问题和答案都是一个节点,取决于你走哪条路,你会遇到一组特定的其他问题/答案

我试图弄清楚如何用可重用的React组件实现这一点。我可以为每个问题创建一个组件,但这似乎不是一个好的做法。有没有人有过制作这种“选择你自己的冒险”式问卷的经验?

你可以使用一个可以为每个答案保存下一个问题的答案。
在您的情况下,条目可以是[ChoiceA,问题2]。在您的程序中,您可以讲述一个可变的当前问题,该问题将根据您的地图进行更新

如果同一答案可能在不同的环境中出现并导致不同的结果,那么这种解决方案可能是不够的。在这种情况下,可能应该是一对问答,以确定下一步的内容

如果您真的想过度解决您的问题,您可以实现一个有向标记图。在本例中,问题将是节点,边标签是您的答案,这些答案将引出下一个问题/节点


当然,最实用的解决方案是根本不使用数据结构,而只使用堆栈。但这是不可伸缩的。

对同一组件进行嵌套。这非常有用。由于每个问题显然都有一组特定的选择/答案,我是否也应该朝这个方向映射?每个问题都可能有几个答案。你知道我是否可以将数组映射到一个值,即['Question2',['ChoiceC','ChoiceD']]?我不知道JavaScript,但看看这个:。在我看来,它甚至支持函数作为值,所以我想为什么不支持数组呢?您可以尝试使用数组,看看它是否有效。一般来说,这样的对象被称为“MultMAP”,搜索它,可能是在本地不支持它的情况下找到它的,也可以考虑将选择封装为一个集合,而不是数组。通过这种方式,您可以边走边添加选项。
                                            ChoiceC
               ChoiceA ---> Question 2 ---> ChoiceD
Question 1 -->                              
               ChoiceB ---> Question 3 ---> ChoiceE
                                            ChoiceF