NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 9 - OOP diář v JavaScriptu - Formátování a mazání záznamů

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Jan Gritzbach:3.1.2024 10:59

Celá tato část kurzu s tvorbou diáře se mi líbí. Tvorba diáře je zde popsána (podle mého názoru) názorným způsobem a jednotlivé kroky na sebe logicky navazují. Současně jde o zajímavé a velmi praktické téma. Bravo!

Snad jen by nezaškodilo tvorbu mazacího tlačítka přesunout do samostatné metody, protože metoda vypisZaznamy() už nám začíná nebezpečně bobtnat a stává se nepřehlednou.

Samostatná metoda pro tvorbu mazacího tlačítka by mohla vypadat třeba takto:

vytvorMazaciTlacitko(zaznam) {
        // vytvoří tlačítko, které po kliknutí vymaže zadaný záznam

        const smazatButton = document.createElement("button");
        smazatButton.innerText = "Smazat úkol"

        smazatButton.onclick = () => {

            if (confirm("Opravdu si přejete odstranit úkol?")) {

                this.zaznamy = this.zaznamy.filter(z => z !== zaznam) // pomocí filter() ponecháme z původního pole jen to, co nemá stejnou objektovou referenci jako předaný záznam. Jinými slovy, předaný záznam bude odstraněn.
                this.ulozZaznamy()  // což se hned musí projevit i v localStorage
                this.vypisZaznamy() // a také ve výpisu
            }

        }

        return smazatButton

    }

V samotné metodě vypisZaznamy() by pak stačilo jen napsat:

this.vypisElement.appendChild(this.vytvorMazaciTlacitko(zaznam))
Odpovědět
3.1.2024 10:59
"Stay curious, learn every day!"
Avatar
Odpovídá na Jan Gritzbach
Jan Gritzbach:3.1.2024 11:13

Dobrá... zpětně vidím, že jste se k tomu dostali hned v další lekci :D

Odpovědět
3.1.2024 11:13
"Stay curious, learn every day!"
Avatar
Lumír RAJSKÝ:4.7.2024 17:36

... stále kroutím hlavou. Kde jsme vzali nějaké "z" a co znamená ... z => z ... ?

 
Odpovědět
4.7.2024 17:36
Avatar
Lukáš Kuběna:12. dubna 10:36

letmo zmíněné metody na new Date obj.

const datum = new Date(zaznam.da­tum).toLocale­DateString(this­.jazyk, {
weekday: "long",
day: "numeric",
month: "short",
year: "numeric"
})
console.log(datum);

a metoda filter
.filter(z => z !== zaznam)
je z pevně dané? co je pod ním dosazené? vezme se záznam z cyklu záznamy, uloží se pod z a srovná ho se záznamem u kterého je tlačítko smazat?

 
Odpovědět
12. dubna 10:36
Avatar
Šimon Raichl
Tvůrce
Avatar
Odpovídá na Lukáš Kuběna
Šimon Raichl:19. května 16:21

Funkce filter má jako parametr funkci, která se zavolá při každé iteraci. Vytvoří nové pole a v zásadě vevnitř funguje jako for cyklus, a pokud výsledek funkce je truthy, tak hodnotu přidá do pole, jinak jí vyhodí. Zde z je tedy parametr pro funkci, a při každé iteraci dostane hodnote na konkrétním indexu v poli při této konkrétní iteraci a tato funkce se takto dál zavolá na každé položce v původním poli. Vzhledem k tomu, že se zde funkce filter volá na poli záznamů a proměnná zaznam je referencí na jeden konkrétní záznam, tak takto vytvoříme nové pole bez tohoto konkrétního záznamu.

Editováno 19. května 16:23
 
Odpovědět
19. května 16:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 35.