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



我正在尝试做一个个性测试,我想转换我得到的答案代码(是是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; 
} 

您可以创建一个枚举。

const answerMap = {
AAAA: 'First result',
AAAB: 'Second result',
...
};
function getAnswer() {
return answerMap[getEndingSentence()];
}

您可能想要添加一个针对无效值的保护,但这应该可以做到。例如,getEndingSentence()返回"AAAA",answerMap['AAAA']返回"First result"。

另一种选择是使用switch语句:https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Sentencias/switch

但我认为枚举效果更好。

我假设您想要一种针对多个结果的方法,因为这是您的代码应该工作的原因。如果要将键转换为定义的值,可以使用对象来避免多个If条件。

const quizResults = {
'AAAA': 'Leopard',
'AAAB': 'Lion', // ..and so on for each case
}
function getAnswer() {
var preAnswer = getEndingSentence();
return quizResults[preAnswer];
}

相关内容

  • 没有找到相关文章

最新更新