Mar*_*o D 6 javascript php algorithm code-readability
我必须根据用户输入创建报告.用户回答一个问题,然后根据答案我在树状结构中向左或向右走,并提出一个新问题.一些节点将有相同的问题,但不同的孩子.我不确定在代码可读性方面最好的方法是什么?
我想避免巨大的控制结构,因为它将是非常难以理解的,像这样:
if() {
if() {
if() {
if() {
...
}
}
else {
if() {
...
}
}
}
else {
...
}
}
else {
if() {
if() {
if() {
...
}
}
else {
if () {
...
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来处理它?这是我树如何看的图像

将树存储为数据,这样您的代码就可以非常小。如果我们稍微修改@jam6549给出的答案,我们可以得出这样的结果:
var answer = [ {t: "Does it have fur?", y: 1, n: 2},
{t: "Is it a kitten?", y: 3, n: 4},
{t: "Is it a goldfish?", y: 5, n: 4},
{t: "Found a kitten", y: -1, n: -1},
{t: "I'm stumped", y: -1, n: -1},
{t: "Found a goldfish", y: -1, n: -1} ];
var state = 0;
while ( answer[state].y >= 0 ) {
var choice = confirm(answer[state].t);
state = choice? answer[state].y: answer[state].n;
}
alert(answer[state].t);
Run Code Online (Sandbox Code Playgroud)
这仅支持简单的 y/n 答案,因此我可以使用确认,您将需要使用一个数组,其中包含每个可能答案的条目。
你说有些问题是重复的,所以我很想拥有一个包含每个独特问题文本的数组。然后,您的答案数组将索引存储到问题数组中以保存重复的文本。
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |