JavaScript naptár megvalósításának megvitatása
A naptárunk egy táblázat
a 1-től a hónap utolsó napjáig terjedő számokkal.
A probléma az, hogy a táblázat számai az első
sorban nem az első cellától kezdődnek.
Ez általában nyilvánvaló. Nem nyilvánvaló, hogy pontosan melyik cellától kell kezdeni. Gondolkozzunk el rajta.
Tegyük fel, hogy a hét hétfővel kezdődik, és
az a nulladik nap. Ebben az esetben a hónap első napjának
a heti sorszáma határozza meg
az előtte lévő üres cellák számát. Például
a csütörtök sorszáma 3 lesz, és előtte
3 üres cella lesz.
Hasonló probléma vár ránk a táblázat végén is. Ott is üres cellákat kell hagynunk a hónap utolsó száma után. Ebben az esetben az üres cellák száma hat lesz, amiből ki kell vonni a hónap utolsó napjának heti sorszámát.
Gondolkozzunk most el azon, hogyan fogjuk
létrehozni a táblázatunkat. Nyilvánvalóan a legkényelmesebb
egy kétdimenziós tömb, amelynek minden résztömbjében
7 elem lesz (= a hét napjainak
száma). Ugyanakkor az első és az utolsó
résztömbben egyes elemeknek üreseknek kell lenniük.
Műveletek algoritmusa
Készítsünk egy függvényt, amely egy tömböt készít
1-től a hónap utolsó napjáig terjedő számokból.
Ezután készítsünk egy függvényt, amely a tömb
elejére hozzáadja a szükséges számú üres
elemet. Hasonló függvénynek kell üres elemeket
hozzáadnia a tömb végéhez.
Ezek után egy olyan egydimenziós tömböt kapunk,
amelynek elemeinek száma 7-tel osztható.
Alakítsuk át ezt a tömböt kétdimenziósrá, 7
elemű résztömbökké.
Ezután vegyük ezt a kétdimenziós tömböt, járjuk be ciklusokkal, és alakítsuk ki a táblázatunkat.
Ezt a műveletek algoritmusát lépésről lépésre fogjuk végrehajtani a következő leckékben.