我想做一个角色性格测试(针对我的虚构角色)
我知道我将不得不让变量等于这样的数组:
// var personality = [gender, age, muscularity, trait_1, trait_2, etc.];
我知道variable = array
不起作用,所以我把它评论掉了。我需要每个问题的变量,以及很多if/else-if/else语句。
我从alert()
的陈述开始,我问"你的性别是什么?"我想我需要把它改为prompt()
,它才能接受答案。
但是,我该如何将所有这些var = "string"
、if/else
和var = [array]
语句纳入一个合理、纯粹的JS个性测试?
我知道plan(gender first, then age, then other physical characteristics, then socio-emotional characteristics, then other characteristics)
,但我需要一些帮助。
我知道if/elseif/else
语句会导致越来越多的提示,有些是男性特有的,有些是女性特有的。所以我会有这样的嵌套语句:
if (variable = "string") {
prompt("Next question");
var a(generic variable that could refer to anything) = [array(prompt results)];
} else {
prompt("Next question");
var b(again generic variable) = [array(prompt results)];
}
等等。
那么,我如何才能让数组得到可能的结果,如果键入的内容未定义(数组外),则不允许它继续?
如果没有n*10^x if/else语句,我怎么能让最后一个人格数组考虑到之前的所有变量,并使特定的组合等于特定的人格?
首先,您使用的是JavaScript,因此对象/字典是您的朋友。它们类似于数组,但每个条目都有键。
其次,你应该有一份问题清单,列出不同的答案。使用提示(即纯JavaScript alert
)不是一个好主意,因为响应非常有限。相反,我建议查看模态,并使用它们为每个问题显示更多的结果,或者显示一个文本框供他们填写。
我认为epascarello有一个很好的主意,检查null
或一个空字符串,如果一个问题没有得到回答,然后再次呈现。