Witam. Czy ktoś by mógł zaglądnąć w kod i pomóc mi znaleźć błąd.
(tzn. domyślam się gdzie jest, ale nie wiem dla czego tak jest)
pastebin.com/mzyVup0L
<div id="liczby"></div>
<div id="komentarz"></div>
<button id="przycisk">Wylosuj numery</button>
var wylosowane = []; // tablica na wylosowane liczby
var przycisk = document.getElementById('przycisk'); // guzik który generuje zdarzenie
// po kliku uruchamiana jest funkcja wylosowaneLiczby z argumentem losowanie
przycisk.addEventListener('click', wylosowaneLiczby.bind(null, losowanie), false); // event listener
function losowanie() {
//funkcja losująca
var losLiczba = Math.ceil(49 * Math.random()); // losowanie liczby
wylosowane.push('<span class="wylosowane">' + losLiczba + '</span>'); // liczba jest dodawana do tablicy wylosowane
for (var i = 0; i < wylosowane.length; i++) { // <-problematyczna pętla
console.log(wylosowane[i]); // zwraca wszytsko jak trzeba
return wylosowane[i]; // zwraca tylko wylosowane[0]
}
}
// reszta skryptu, toretycznie prawie działa tak jak ma działać
function wylosowaneLiczby(callback) {
// funkcja wyświetlająca wynik
var pokaLiczby = document.getElementById('liczby');
var komentarz = document.getElementById('komentarz');
var wynik = callback();
pokaLiczby.innerHTML = wynik;
if (wylosowane.length == 7) {
komentarz.innerHTML = '<p class="komunikat">Masz już komplet liczb. Czas wypełnić kupon</p>';
}
}
Założeniem skryptu było wylosowanie numerów i wyświetlenie ich kolejno na stronie po kliknięciu w przycisk (jeden klik, jeden numer).
Po kliku jest uruchamiana funkcja, której zadaniem jest wyświetlenie wyniku na stronie. Funkcja ma też w sobie wywołanie zwrotne, dzięki któremu dostaje wyniki losowania w postaci elementów tablicy (przynajmniej takie było założenie). Problem jest najprawdopodobniej w funkcji losującej, w pętli for. Powinna pobierać kolejno indeksy wszystkich elementów tablicy i wysyłać zawartość tych elementów jako wynik działania funkcji. Tymczasem zwraca mi ciągle pierwszy element tablicy [0]. Czemu tak się dzieje?