【问题标题】:JavaScript: Convert Pseudo Code into JavaScript CodeJavaScript:将伪代码转换为 JavaScript 代码
【发布时间】:2020-07-07 14:42:06
【问题描述】:

JavaScript

我考虑过以下伪代码:

for answer in answers {
    if(answer in selectedAnswers){
        if(selectedAnswer in rightAnswers)
             // Code if answer is right
        }    
        else {
            // Code if answer is wrong
        }
    }
}

我尝试在 JavaScript 中实现代码,但不知何故我不想成功。

currentAnswers = Object.keys(currentQuestion.answers);
currentSelectedAnswers[buttonClicked] = this.id.split('-')[5]; 
currentRightAnswers = currentQuestion.rights;

    for(var answer in currentAnswers) 
    {
        if(currentSelectedAnswers.includes(answer))
        {
            if(currentRightAnswers.includes(currentSelectedAnswers))
            {
                console.log("TRUE");
            }
            else 
            { 
                console.log("FALSE");
            } 
        }
    }


A snippet of a question of my JSON File:

                    "answers": {
                        "1": '...sind eigenständig ausführbare Programme.',
                        "2": '...müssen in der gleichen Programmiersprache wie die Anwendung geschrieben worden sein.',
                        "3": '...müssen in Assemblersprache geschrieben worden sein.',
                        "4": '...können beim Compilieren des Programms statisch gelinkt werden.',
                        "5": '...können zur Laufzeit des Programms dynamisch gelinkt werden.',
                        "6": '...müssen zum Compilieren des Programms im Quelltext vorliegen.'
                    },
                    "rights": {
                        "1": "4",
                        "2": "5" 
                    },

但我收到以下错误:

我希望有人可以帮助我吗?

我想突出显示两个正确答案并突出显示选定的两个错误答案。

currentAnswers 在顶部的任何函数中声明......

currentSelectedAnswers 在应答按钮的 buttonClick 事件中声明,如果我单击应答按钮,则带有 for 循环的函数将执行...

currentRightAnswers 在函数中声明,其顶部有 for 循环......

THE VALIDATION FUNCTION WHICH CHECK IF THE ANSWERS ARE WRONG OR RIGHT
var currentSelectedAnswers = [];
var currentAnswers = [];
var currentAnswers = Object.keys(currentQuestion.answers);

function validateEasyTwoAnswersQuestionAnswer() {
    console.log("validateEasyTwoAnswersQuestionAnswer");
    $(".answer-btn").hide();
    var currentRightAnswers = [];
    currentRightAnswers = currentQuestion.rights;
    for(var answer in currentAnswers) 
    {
        if(currentSelectedAnswers.includes(answer))
        {
            if(currentRightAnswers.includes(currentSelectedAnswers))
            {
                console.log("TRUE");
            }
            else 
            { 
                console.log("FALSE");
            } 
        }
    }
    $(".continue-btn").show();
}



IF AN ANSWER CLICKED THE CLICK EVENT WILL EXECUDE
button.addEventListener("click", function(e) {
            if(buttonClicked == 2)
            {
              e.preventDefault();
            }
            else {
                buttonClicked++;
                selectAnswer(this);
                console.log(this.id);
                currentSelectedAnswers[buttonClicked] = this.id.split('-')[5];
                console.log(currentSelectedAnswers);
            }
        });
        

【问题讨论】:

  • currentQuestioncurrentSelectedAnswersbuttonClicked 是什么 - 它们在哪里声明
  • 我已添加到帖子中
  • 您仍然没有显示带有这些变量的代码,只是您可能理解但毫无意义的模糊描述
  • 我又加了一些代码...

标签: javascript html code-snippets


【解决方案1】:

currentRightAnswers.includes 不是函数

我相信您正在尝试调用函数Array.prototype.includes。它是 Array 对象的一部分,但 currentRightAnswers 不是数组。它只是一个对象。

快速解决方法是将属性rights 定义为Array,就像这样,在您的JSON 文件中(注意[] 而不是{}

{
  "answers": {
    "1": '...sind eigenständig ausführbare Programme.',
    "2": '...müssen in der gleichen Programmiersprache wie die Anwendung geschrieben worden sein.',
    "3": '...müssen in Assemblersprache geschrieben worden sein.',
    "4": '...können beim Compilieren des Programms statisch gelinkt werden.',
    "5": '...können zur Laufzeit des Programms dynamisch gelinkt werden.',
    "6": '...müssen zum Compilieren des Programms im Quelltext vorliegen.'
  },
  "rights": [
    "4",
    "5" 
  ]
}

【讨论】:

  • 好的,谢谢您的帮助。错误消失了,但我还有另一个问题。带有 if 的 for 循环不是正确的事情......你能帮我改进吗?当我拥有两个以上答案的权利时,我该如何解决它......所以我有
猜你喜欢
  • 1970-01-01
  • 2012-02-25
  • 2015-01-10
  • 1970-01-01
  • 2022-12-02
  • 2012-03-20
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多