Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 9. diel - OOP diár v JavaScripte - Formátovanie a mazanie záznamov

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
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))
Odpovedať
"Stay curious, learn every day!"
Avatar
Odpovedá 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

Odpovedať
"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 ... ?

Avatar
Lukáš Kuběna:12. apríla 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?

Avatar
Šimon Raichl
Tvůrce
Avatar
Odpovedá na Lukáš Kuběna
Šimon Raichl:19. mája 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.

Editované
Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 5 správy z 35.