Ale já pořád nechápu, co je špatně. To, že "111" == 111 vyhodí true? Naopak se to hodí (když vím, co dělám), pokud to nechci používat / neznám, tak použiji ===.
[1,2,3,15,30,7,5,45,60].sort();// = [1,15,2,3,30,45,5,60,7]
Kód: [Vybrat][1,2,3,15,30,7,5,45,60].sort();// = [1,15,2,3,30,45,5,60,7]
[1,2,3,15,30,7,5,45,60].sort(function(a,b){a-b});// = [ 1, 2, 3, 5, 7, 15, 30, 45, 60 ]
// lib/sorting.jsexport const ascending = (a, b) => a - b;
import {ascending} from './lib/sorting';[1, 15, 2, 3, 30, 45, 5, 60, 7].sort(ascending);
Citace: Cikáda 26. 09. 2018, 23:55:39Ale já pořád nechápu, co je špatně. To, že "111" == 111 vyhodí true? Naopak se to hodí (když vím, co dělám), pokud to nechci používat / neznám, tak použiji ===. Na té linkované stránce je toho dost, třeba:Kód: [Vybrat][1,2,3,15,30,7,5,45,60].sort();// = [1,15,2,3,30,45,5,60,7]
The default sort order is according to string Unicode code points.
Ono je sice moc hezké označit nedostatky za featury, ale když s některými "featurami" má tolik lidí problém, je opravdu problém v těch lidech?
O čom to hovoríš? Ako "dvakrát"? Prijatý JSON je VŽDY a VŠADE string.
'{"foo": 1}'
'"{\"foo\": 1}"'
'{"sid": "null"}'
Sorry, možná se to řadí podle unicode, ale já v tom poli vidím integer ne string..
S monádami v Haskellu má problém také spousta lidí
Citace: Cikáda 26. 09. 2018, 22:31:03Citace: Honza 26. 09. 2018, 22:12:58Citace: Sajfi 26. 09. 2018, 22:06:29Nejde o neznalost, jde o to, že pokud tohle jazyk dělá, tak to může být 1000x napsáno v dokumentaci, ale stále to neznamená, že je to dobrý nápad. Přesně tak, to si také myslím. Jinak tenhle argument, že "je to přece v dokumentaci", ten se tu bohužel objevuje docela dost často.Opravdu? Vtip je v tom, že u JS je to *ve standardu*. A to je sakra rozdíl (a buďme za to rádi). Zkus si programovat v C/C++ jen jak tě napadne, kašli na dokumentaci/standard, bo to přece není argument. Já beru, že je to v dokumentaci, a že je to ve standardu. Ale právě proto, to tam už zůstane, nikdo to neopraví. Považuju to za chybu návrhu, zatímco se Javascript tváří jednoduše, tak ve skutečnosti je to samý špek. A i když zkušený programátor bude o všech podobných výjimkách vědět, a budou popsané v té dokumentaci, tak se ty chyby nikam neztratí. A narazí se na ně právě v praxi, i když se počítají triviální věci...
Citace: Honza 26. 09. 2018, 22:12:58Citace: Sajfi 26. 09. 2018, 22:06:29Nejde o neznalost, jde o to, že pokud tohle jazyk dělá, tak to může být 1000x napsáno v dokumentaci, ale stále to neznamená, že je to dobrý nápad. Přesně tak, to si také myslím. Jinak tenhle argument, že "je to přece v dokumentaci", ten se tu bohužel objevuje docela dost často.Opravdu? Vtip je v tom, že u JS je to *ve standardu*. A to je sakra rozdíl (a buďme za to rádi). Zkus si programovat v C/C++ jen jak tě napadne, kašli na dokumentaci/standard, bo to přece není argument.
Citace: Sajfi 26. 09. 2018, 22:06:29Nejde o neznalost, jde o to, že pokud tohle jazyk dělá, tak to může být 1000x napsáno v dokumentaci, ale stále to neznamená, že je to dobrý nápad. Přesně tak, to si také myslím. Jinak tenhle argument, že "je to přece v dokumentaci", ten se tu bohužel objevuje docela dost často.
Nejde o neznalost, jde o to, že pokud tohle jazyk dělá, tak to může být 1000x napsáno v dokumentaci, ale stále to neznamená, že je to dobrý nápad.
Citace: Vlado 26. 09. 2018, 23:16:08Nie. ja za roky praxe neviem o jedinom. Takže si myslím, že také kecy majú len ovce čo nevedia o čom hovoria.A nechtěl bys raději zase místo JS onanie jít mydlit toho barana?
Nie. ja za roky praxe neviem o jedinom. Takže si myslím, že také kecy majú len ovce čo nevedia o čom hovoria.
Citace: Vlado 26. 09. 2018, 22:12:22O čom to hovoríš? Ako "dvakrát"? Prijatý JSON je VŽDY a VŠADE string.Mluvím o tom, že když přijatý JSON (jako string) na backendu deserializuju a on je to stále string. Tj. když přijatý JSON místoKód: [Vybrat]'{"foo": 1}'vypadá nějak takhleKód: [Vybrat]'"{\"foo\": 1}"'Ostatně, podobná chyba, když nám po změnách na frontendu začne na backend choditKód: [Vybrat]'{"sid": "null"}'