Javascript 我正在做一个个性测验,需要把答案代码转换成一个单词

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

我想做一个个性测验,我想转换我得到的答案代码(是是a,不是B)这是一个简单的4个问题的儿童个性测验。我有一个函数,它将所有4个问题“标识符”(a和B)放入一个字符串中,然后我想做一个if语句,告诉程序根据这4个字母的代码输出一个答案。基本上,当它是AAAA时,程序需要将其转换为Leopard(AAAA=Leopard),我有代码将其输出到HTML文件,我只需要将AAAA转换为一个单词

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;i您可以创建枚举

const 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实际上比这个更干净,因为您不需要中间变量来理解发生了什么