Problem z pobieraniem wartości z tabeli przy pomocy shift/pop

0

Witam, mam problem z pobraniem wartości z tabeli. Ogólnie mam jedną tabele do której tworze nowych klientów. Następnie chce przełożyć pierwszego w tej tabeli do drugiej dlatego wykorzystuje shift. Niestety mam komunikat "undefined" w konsoli, jednakże gdy wykonam w konsoli funkcje "xxx" wtedy zwraca wynik. Nie wiem czemu w konsoli działa a w kodzie nie. Drugi problem jest taki że jak wyświetlę dwa razy tabele to mi do niej dodaje rekordy nie wiem czemu. A gdy wykonam tab.shift() to nie usuwa elementu tylko dodaje... Nie wiem gdzie tu jest błąd czy to zmienne czy coś proszę o pomoc i wyrozumiałość bo jestem początkujący. Poniżej screen z działania ten drugi tab to ta sama tabela a dodało do niej klienta


``` var tab = [];
                      let tabb = [];
var tabelka = [];

function robienieklienta(){
                        let sr = 500;
                        let p = poissonProcess.create(sr, function bla() {
                           let c = new Client(tablica(), marka(), czasNaSklep());
                           tab.push(c);
                           //    console.log(c)
                           
                        })
                        p.start()
                       
                       sleep(2000).then(function () {
                          p.stop()
                        });
                        return tab;
  
}

                        console.log(tab);
                                         

var tabelka = [];
function xxx() {
 console.log(tab);
  let a = tab.shift();
   tabelka.push(a);
   return tabelka;
   }
//tab.pop();
console.log(tabelka);
console.log(xxx());
 //tabparking = tab.shift();
//console.log(tabparking);
robienieklienta();
xxx();
![screenshot-20190527212537.png](https://4programmers.net/uploads/attachment/5c/5cec39b1d76b9.png)
0

Wykonujesz shift na pustej liście tab, dlatego zwraca udefined. Zadeklarowałeś funkcję robienieKlienta ale nie widzę wywołania.

0
Haskell napisał(a):

Wykonujesz shift na pustej liście tab, dlatego zwraca udefined. Zadeklarowałeś funkcję robienieKlienta ale nie widzę wywołania.

W 38 wywołuje funkcje. Po pustej? sprawdzałem czy w niej coś w jest 28 linii i wszystko było więc nie wiem czemu po pustej jak to inaczej sprawdzić albo sprawić by nie było po pustej?

edit dodaje screen w którym widać że po wpisaniu w konsoli xxx() program działa lecz dodaje ten element dopiero od drugiego indeksu a nie od zerowego albo pierwszego bo w końcu wykonałem wcześniej w kodzie tylko raz shift więc nie wiem czemu w tabeli mam dwie wartości undefined. Jednakże najważniejsze jest wyświetlanie tych przekazanych wartości w drugiej tabeli z resztą może sobie jakoś poradzę.titlescreenshot-20190527231812.png

0

Naucz się korzystać z debuggera. Masz go wbudowanego w narzędzia developerskie.

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