Javascript 我正在做一个个性测验,需要把答案代码转换成一个单词
我想做一个个性测验,我想转换我得到的答案代码(是是a,不是B)这是一个简单的4个问题的儿童个性测验。我有一个函数,它将所有4个问题“标识符”(a和B)放入一个字符串中,然后我想做一个if语句,告诉程序根据这4个字母的代码输出一个答案。基本上,当它是AAAA时,程序需要将其转换为Leopard(AAAA=Leopard),我有代码将其输出到HTML文件,我只需要将AAAA转换为一个单词Javascript 我正在做一个个性测验,需要把答案代码转换成一个单词,javascript,if-statement,Javascript,If Statement,我想做一个个性测验,我想转换我得到的答案代码(是是a,不是B)这是一个简单的4个问题的儿童个性测验。我有一个函数,它将所有4个问题“标识符”(a和B)放入一个字符串中,然后我想做一个if语句,告诉程序根据这4个字母的代码输出一个答案。基本上,当它是AAAA时,程序需要将其转换为Leopard(AAAA=Leopard),我有代码将其输出到HTML文件,我只需要将AAAA转换为一个单词 function getEndingSentence() { var quizRadio = docum
function getEndingSentence() {
var quizRadio = document.getElementsByName("rq");
var answerCode = ''; //It's easier to handle if we simply merge all sentences into a string
for (var i = 0; i < quizRadio.length; i++) {
if (quizRadio[i].checked) {
answerCode += quizRadio[i].getAttribute("data-endingsentence"); //these are the attributes used to generate quiz answers
}
}
return answerCode;
}
function getAnswer() {
var finalAnswer = ''
var preAnswer = getEndingSentence();
if (preAnswer = "AAAA") {
finalAnswer = 'Jagluiperd'
} else {
finalAnswer = 'Undefined'// just to test if the if statment works
}
return finalAnswer;
}
function setEndingSentence() {
var personalityResults = getAnswer();
document.getElementById("results_screen").className = "";
document.getElementById("generated_text").innerHTML = personalityResults;
}
函数getEndingEntence(){
var quizRadio=document.getElementsByName(“rq”);
var answerCode='';//如果我们简单地将所有句子合并成一个字符串,那么处理起来就更容易了
对于(变量i=0;iconst answerMap = {
AAAA: 'First result',
AAAB: 'Second result',
...
};
function getAnswer() {
return answerMap[getEndingSentence()];
}
您可能希望添加一个防止无效值的保护,但这应该可以做到。
getEndingSentence()
返回例如'AAAA'和answerMap['AAAA']
返回'First result'
另一种选择是使用switch语句:
但我认为枚举工作得更好。我假设您希望有一种方法可以对多个结果执行此操作,因为您的代码应该可以正常工作。如果要将键转换为定义的值,可以使用对象来避免多个If条件
const quizResults = {
'AAAA': 'Leopard',
'AAAB': 'Lion', // ..and so on for each case
}
function getAnswer() {
var preAnswer = getEndingSentence();
return quizResults[preAnswer];
}
你所做的一切有用吗?如果是这样,您只需要使用switch语句而不是if语句。这只是一种简单的方法,可以编写一个包含很多选项的if语句。除了if语句之外,其他所有功能都可以正常工作,但我将检查switch语句。如果if语句有一个
=
,则至少需要两个preAnswer=“AAAA”
必须是preAnswer==“AAAA”
我很高兴它起作用了。你能把答案标记为有效答案,并在你的问题得到回答后再投票吗?这有助于其他人更好地理解文章。另外,@eloyra answers实际上比这个更干净,因为您不需要中间变量来理解发生了什么