przekazanie zmiennej z funkcji1 do funkcji2

0
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div>
<button onclick="start()"type="button">zacznij</button> 
</div>
<div id="liczba x">
</div>
<div id="liczba y">
</div>
<div id="liczba wynik">
</div>
<div id="wynik"> 
<input id="odpowiedz"></input>
<button onclick="odczyt()"type="button">sprawdź</button> 
</div>  
</body>
<script>
function start() {
var x = Math.floor((Math.random() * 6) + 4);
var y = Math.floor((Math.random() * 6) + 4);    
var wynik = x*y; 
document.getElementById("liczba x").innerHTML = x;
document.getElementById("liczba y").innerHTML = y;
return(wynik);}
 
function odczyt() {  
var odp = document.getElementById("odpowiedz").value;
var wynik = start();
console.log(odp, wynik)}; 

</script>
```javascript

Proszę o pomoc jak przekazać samą zmienną "wynik" (tj. bez wywołania całej zawartości funkcji) z funkcji start () do funkcji odczyt()

0
(tj. bez wywołania całej zawartości funkcji) z funkcji start () do funkcji odczyt()

ale dlaczego? Tak jak masz teraz jest dobrze. Mozesz zrobic zmienna globalna, ale ja tego nie robil

0
fasadin napisał(a):
(tj. bez wywołania całej zawartości funkcji) z funkcji start () do funkcji odczyt()

ale dlaczego? Tak jak masz teraz jest dobrze. Mozesz zrobic zmienna globalna, ale ja tego nie robil

tak jest błędnie gdyż podczas wywołania funkcji odczyt () jednocześnie wraz z przekazaniem zmiennej "wynik" wywoływana jest cała funkcja start() i zamieniane są zmienne x i y

1

moze napisz co chcesz osiagnac. Bo wydaje mi sie, ze jest to typowy
https://en.wikipedia.org/wiki/XY_problem (czyli problem nie lezy w tym co chcesz osiagnac tylko jak to chcesz osiagnac)

0

Sprawa jest prosta funkcja start() losuje liczby "x' i "y" oraz wylicza w zmiennej "wynik" wartość x*y
zaś funkcja odczyt() odczytuje z inputa wartość i zapisuje ją do zmiennej "odp" następnie chce porównać zmienną "wynik" ze zmienną "odp"
jednak po każdorazowym uruchomieniu funkcji odczyt zmieniają się również zmienne "x" i "y" które są losowane w funkcji start(). Nie wiem dlaczego jeżeli funkcja start jest wywoływana tylko raz na starcie.

0
  1. funkcje wynik podziel na dwie funkcje
  • jedna ktora losuje liczby i zapisuje do elementu x y losuj()
  • druga ktora sumuje dwie liczby sumuj(x,y)
  1. w wyniku pobieraj liczby i przekazuj do sprawdz

  2. formatuj kod normlanie ;)

edit

function losuj() {
	var x = Math.floor((Math.random() * 6) + 4);
	var y = Math.floor((Math.random() * 6) + 4); 
  
	document.getElementById("liczba x").innerHTML = x;
	document.getElementById("liczba y").innerHTML = y;
}

function sumuj(x, y) {
	const wynik = x*y; 
	return(wynik);
}

function start() {
	losuj();
}

function odczyt() {  
	var odp = document.getElementById("odpowiedz").value;
	const x = document.getElementById("liczba x").innerHTML;
	const y = document.getElementById("liczba y").innerHTML;
	var wynik = sumuj(x, y);
	console.log(odp, wynik)
}; 
0

A nie wystarczyłoby tu pole typu input hidden i tam "przechowywać" tą wartość?

1 użytkowników online, w tym zalogowanych: 0, gości: 1