Как создать функцию, которая реагирует на то, что сгенерировала предыдущая функция в Javascript - PullRequest
0 голосов
/ 18 марта 2020
  • Я создал две функции (F1 и F2)
  • F1 создает случайный ответ
  • F2 должен дать отзыв на ответ F1 сгенерировано (if(antw == ant)
  • Мой вопрос: как мне заставить F2 работать со сгенерированным случайным ответом F1, чтобы обратная связь была правильной?

var operators = ['+','-'];

function F1()
{    
  	Z1 = document.getElementById("Z1");
    	Z2 = document.getElementById("Z2");
    	oper=document.getElementById("operator");
    	answer=document.getElementById("answer");
    	
        rZ1 = Math.floor((Math.random()*10));
    	rZ2 = Math.floor((Math.random()*10)+1);
    	op = operators[Math.floor(Math.random()*2)];
   		
        Z1.innerHTML=rZ1;
    	Z2.innerHTML=rZ2;
    	oper.innerHTML=op;
    	answer.innerHTML = eval(rZ1 + op + rZ2);      
}

document.getElementById("button2").addEventListener("click", F2);

function F2()
{
	antw = parseInt(document.getElementById("userAnswer").value, 10);
	feedBack = document.getElementById("feedBack");
	ant = document.getElementById("answer");

	{
	if(antw == ant) {
	feedBack.textContent = "right";

	} else {
	feedBack.textContent = "wrong";
	}
} 	
};
<button onclick="F1()"> New </button>

<p> 
    	<label id="Z1"> </label> 
    	<label id="operator"> </label>
   	<label id="Z2"> </label>
      = <input id = "userAnswer" type=text>
        <button id = "button2" >answer</button>
</p>   

<p id = "feedBack"> </p>

<p><label id="answer"> </label></p>

1 Ответ

1 голос
/ 18 марта 2020

Вы можете вызвать F2 в конце функции F1 и передать ответ F2 в качестве параметра.

function F2(answer){
    //logic to check answer
    return feedback
}

function F1(){
   //logic to calculate answer
   F2(answer)
}

Вы можете использовать свой исходный код, нужно только исправить небольшую проблему в своем коде , Вы забыли использовать textContent для получения значения из вашего html, поэтому вы сравниваете неопределенное значение с вашим ответом

ant = document.getElementById("answer").textContent;
...