⊗jsPmCdExND 139 of 505 menu

Kontrola číslic čísla v JavaScriptu

Předpokládejme, že máme číslo:

let num = 12345;

Pokus o přístup k prvnímu znaku čísla povede k neočekávanému chování:

let num = 12345; if (num[0] == 1) { console.log('+++'); } else { console.log('---'); // provede se toto }

Jak již víte, problém je v tom, že lze přistupovat ke znakům řetězce, ale nelze - k číslicím čísla:

let num = 12345; console.log(num[0]); // vypíše undefined

Pro vyřešení problému převedeme naše číslo na řetězec:

let num = 12345; let str = String(num); if (str[0] == 1) { console.log('+++'); // provede se toto } else { console.log('---'); }

Není nutné zavádět novou proměnnou, lze aplikovat [0] přímo k výsledku funkce String:

let num = 12345; if (String(num)[0] == 1) { console.log('správně'); // vypíše 'správně' } else { console.log('nesprávně'); }

Předpokládejme nyní, že chceme zkontrolovat první číslici na to, že je rovna 1, nebo 2. Napišme odpovídající kód:

let num = 12345; if (String(num)[0] == 1 || String(num)[0] == 2) { console.log('+++'); } else { console.log('---'); }

V tomto případě se stane, že konstrukce String(num)[0] se zopakuje dvakrát. To je jednak dlouhé, a jednak ne optimální, protože dvakrát převádíme číslo na řetězec - druhýkrát je to zbytečné, a zdroje programu na to jsou vynakládány.

Opravme problém:

let num = 12345; let first = String(num)[0]; if (first == 1 || first == 2) { console.log('+++'); } else { console.log('---'); }

Je dáno celé číslo. Napište podmínku, která zkontroluje, zda je poslední číslice tohoto čísla rovna nule.

Předpokládejme, že v proměnné num je uloženo číslo. Určete, zda je číslo sudé nebo liché. Číslo bude sudé, pokud je poslední znak roven 0, 2, 4, 6 nebo 8, a liché v opačném případě.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout