Diskuze: Seznam filmů pomocí javascriptu?
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 9 zpráv z 9.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.


Ahoj 
já bych asi nepoužil document.write, ale udělal bych to takto:
let films = [
["Babovřesky 1", "komedie", "2015"],
["Avatar","sci-fi","2004"],
["Pán Prstenu","akční","2001"],
["Kurýr 1","akční","2020"]
];
films.sort();
// vytvoří tabulku
let table = document.createElement("table");
// přidá tabulku do body elementu
document.body.appendChild(table);
// postupně přidá do tabulky řádky
for(let i = 0; i < films.length; i++){
// vytvoří řádek
let row = document.createElement("tr");
// přidá řádek do tabulky
table.appendChild(row);
// postupně projede pole filmu a vypíše jednotlivé buňky
for (let j = 0; j < films[i].length; j++) {
// vytvoří buňku
let cell = document.createElement("td");
// přidá do buňky text z pole
cell.innerText = films[i][j];
// přidá buňku do řádku
row.appendChild(cell);
}
}
Trochu jsem ti to okomentoval, snad to pochopíš 
Co vypisuje javascriptova konzola? Presne ta resi takovehle chyby.
<script>
var film_list, out, i, i_end; // jsem zvykly pouzivat var, to neres
film_list = [ // je uzitecne, seznamum dat do nazvu list, pro polozky pouzivam item
["Babovřesky 1", "komedie", "2015"], // film_list[i] je pole ... (***)
["Avatar","sci-fi","2004"],
["Pán Prstenu","akční","2001"],
["Kurýr 1","akční","2020"]
];
film_list.sort();
i_end = film_list.length;
out = '';
out += '<table border="1" width="100%">';
for(let i = 0; i < i_end; i++) // nikdy nepouzivej .length v cyklu, je to funkce, konstanta je rychlejsi
// nez opakovane spoustet v kazdem cyklu zjistovani delky pole, ktera se mohla zmenit
// i = je dobre pouziva i jako increment nebo index, symbolika pismene
{
out += "<tr>";
out += '<td>' + film_list[i].join(', ') + '</td>'; // (***) ...takze pri vypisu bys to mel joinovat nebo vypsat zvlast film_list[i][0] = film_list[i][1] + ...
out += "</tr>";
}
out += "</table>";
document.write(out); // nikdy nepouzivej presun dat vic nez jednou, document.write, tag.innerHtml, ... Je to asi mnohem rychlejsi na zpracovani
</script>
Děkuji, jdu zkoumat kód.
Jsem začátečník, tak jsem tam psal co už jsem uměl použít z lekcí
Javascriptu.
Pokud se mi nebude dařit, tak se zas přihlásím.
Pouzil jsem tvuj kod, jenom tam neco zmenil a snazil se to okomentovat. Ale
jestli jsi zacatecnik, tak nevim, zda to pochopis 
V zasade, ti to nemuselo fungovat, kvuli tomu joinu. Ale ve Firefoxu tvuj kod
bez problemu funguje, protoze FF ma jednu z nej podpor pro JS, v nem funguje
skoro vse
Tipnul bych si, ze
zkousis chrome nebo IE, je to tak?
Mlich: v chromu to zobrazím. Postup jsem rozebral, akorát nějak nevím to
'out' a '+=' co to znamená? To 'join' jsem ještě nestudoval.
Šlo by vytvořit aby to bylo ve sloupcích?
Satora: na mobilu mi to žádny prohlížeč nezobrazí(na PC se učí teď
děti).
Je tam použito 'table' a dole pak 'row' a jestli se to neruší.
Jinak použití elementů Domu mi smysl dává, ale proč se dole používá
'row'?
Stylování tabulky by mělo jít v css.
Zvažuju jestli by tabulka neměla být v gridu.
Slo.
x += y // x = x + y
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#assignment_operators
[1, 2, 3, 4].join('xxx') // = string "1xxx2xxx3xxx4"
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join
Dom funguje tak, ze?
- vytvor table ... let table = document.createElement("table");
opakuj pro vsechny radky tr
{
- vytvor tr ... let row = document.createElement("tr");
opakuj pro vsechny bunky td
- vytvor td ... let cell = document.createElement("td");
- vytvor text ...
- pripoj na td element text ... on misto posl. 2 radku pouzil cell.innerText
- pripoj na tr element td ... row.appendChild(cell);
- pripoj na table element tr ... table.appendChild(row);
}
- pripoj na dokument element table ... document.body.appendChild(table);
On to sice udelal v jinem poradi, take moznost. Proste to delas, jako bys vytvarel html kod
<table>
<table><tr>
<table><tr><td>
<table><tr><td>text
<table><tr><td>text <td>
<table><tr><td>text <td>text ...
Ten první návrh od Satora, mi funguje na PC pěkně, ale neotevřu ho v
žádném prohlížeči na mobilu.
A kvůli zobrazení v mobilu to dělám.
Zobrazeno 9 zpráv z 9.