将代码转换为Array但输出相同

时间:2016-09-04 14:56:25

标签: arrays actionscript-3 flash if-statement

我目前正在使用as3进行识别测验,我在这里有一些实际上通过按钮工作的代码,我只想询问是否有可能将我的代码转换为数组语句但最终得到相同的输出?我真的很想让我的代码成为一个阵列因为它非常灵活,谢谢你们

   var answer:String = answer.text.toLowerCase();
   if (answer == "allan joshua mccartney" || answer =="mccartney" 
   || answer == "allan" || answer =="joshua" || answer == "joshua mccartney" || answer =="allan joshua" || answer == "allan mccartney") {
score = score +1;
gotoAndStop(2);

你可以看到我的代码正在运行,但是完成单个识别测验需要非常长的代码bcoz有很多可能的答案,我听说数组是处理这一堆可能答案的最佳方法。那些家伙

1 个答案:

答案 0 :(得分:1)

你的回答清单:

var answersList:Array=new Array("answer1","answer2","answer3");//the list of correct answers

然后:

var answer:String = answer.text.toLowerCase();
if(answersList.indexOf(answer)>-1){//check if the answer is in the answers list
    score++;// the short form of "score=score +1;
    //the rest of the code

修改

检查答案是否包含多个答案:

使用循环检查answersList中的项目:

var numAnswers:uint=0;//number of answers found in the answer.
for(var i:uint=0;i<answerslist.length;i++){
    if(answer.indexOf(answersList[i])>-1){
        numAnswers++;
    }
}
numAnswers;//now this variable contains number of answers found in the answer.

当然,它不是那么复杂并且有一些问题,例如它的答案可能包含不会被此代码跟踪的额外字符。或者一些不同的答案可能是彼此的一部分,并且它不会被跟踪。你应该自己做。

我希望这会有所帮助。