Я изо всех сил пытался написать правильный алгоритм для этого. Итак, у меня есть дерево вопросов, которое выглядит так:
[
{
question: "Question 1",
answers: {
"yes": [
{
question: "Question 1a",
answers: ["A", "B"]
}
],
"no": null
}
},
{
question: "Question 2",
answers: ["I agree"]
}
]
И у меня есть responses
объект, который может выглядеть примерно так:
[
{ question: "Question 1", answer: "yes" },
{ question: "Question 1a", answer: "B" },
]
Или это может быть так:
[
{ question: "Question 1", answer: "no" },
]
А теперь я пытаюсь написать код, чтобы выяснить, каким должен быть следующий вопрос. Оба приведенных выше примера объекта responses
должны указывать на следующий вопрос: "Question 2"
.
Я хотел бы иметь функцию типа getNextQuestion(questions, responses)
, которая, как мы надеемся, вывела бы:
{
question: "Question 2",
answers: ["I agree"]
}
Я понял, как пройти вниз по дереву, но я не могу понять, как пройти вверх по дереву, когда это необходимо. Кто-нибудь готов помочь?