Diskuze: Seřazení pole polí
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 15 zpráv z 15.
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.
Jednoduše použiješ callback jako parametr metody sort.
var pole = [[5, 2, 6], [89, 3, 5], [1, 1, 0]];
var serazeno = pole.sort(function(a, b) {
return a[1]-b[1];
});
Mimochodem, výsledek callbacku:
0: stejné hodnoty = neprohodí
+1 (resp. kladný): prohodí <strong>b</strong> za
<strong>a</strong>
Děkuji - vysvětlil jsi mi to dokonale. Super!
(Takže to stejně probíhá v
cyklu.
)
Je to řazeno od nejmenšího po největší podle druhé položky
vnořeného pole. Proč to tak je jsem doplnil do původního příspěvku 
Prohodit a s b a prohodit b za a je totéž. Ale jinak je to OK.
Parametry a a b jsou vždy naplněny hodnotami, u kterých sort() potřebuje zjistit, co je větší.
Anonymní funkce jsou prostě kouzelné 
Přesně. Teda pokud to chceš řadit od největší položky po nejmenší.
Pak jsi to pochopil dobře 
Jo, taky jsem si to pak uvědomil, ale snad to bude jasné, když je to pod
tím naopak 
Na anonymní funkce jsem poprvé narazil v Lispu a byl jsem velmi potěšen, že se dostaly i do Pythonu. Je to jednoduchý způsob, jak aplikovat DI a neztratit přitom orientaci v programu.
Jaká je vůbec správná definice lambda výrazů? Na internetu jsou velké rozpory.
Teď nevím, co myslíš. Funkci můžeš definovat jedině pomocí klíčového slova function, přičemž ji můžeš a nemusíš dávat jméno případně ji můžeš uložit do proměnné. Následující zápisy jsou v JS ekvivalentní:
var hello = new Function("return 'word'");
var hello = function(){ return 'world'; };
function hello() { return 'world' };
Z těch možností můžeš používat kteroukoli snad kromě první. Tu bych raději nepoužíval.
Funkce si můžeš nechat předávat do parametrů a spouštět. Spouštění funkcí v JS jde taky několika způsoby:
hello();
hello.call(kontext, parametr1, parametr2);
hello.apply(kontext, [parametr1, parametr2]);
Funkci lze dokonce hned zavolat. Stačí ji obalit závorkami, aby bylo jasné, co voláš:
(function(message) {
console.log(message);
})('Hello world');
Tím, že je můžeš mít v proměnné, se dají taky hezky předávat jako parametry. Např. pro různé události, které se mají vykonat (např. po načtení AJAX požadavku, po skončení animace apod.)
Ty zápisy funkcí nejsou zcela ekvivalentní. Každá se chová trochu jinak. Dokonce funguje i podivná konstrukce
var hello = function hello2(){ return 'world'; };
Tato funkce má pak 2 jména. Funkce hello2() je v navazujícím kódu nedostupná, ale je možné ji použít k rekurzi z funkce hello().
Pokud funkci definuji pomocí
var hello = function(){ return 'world'; };
je před touto definicí nedostupná a může být za běhu redefinována jinou funkcí se stejným názvem. To u klasické deklarace funkce není možné, je platná v celém skriptu.
Zobrazeno 15 zpráv z 15.