Přístup k číslicím čísla v JavaScriptu
Nyní mějme v proměnné uloženo
ne číslo v uvozovkách, ale prostě číslo. V tomto
případě pokus o přístup k jeho jednotlivému
symbolu vrátí undefined, protože
takový přístup funguje pouze pro řetězce:
let test = 12345;
alert(test[0]); // vrátí undefined
Pro vyřešení problému převeďme naše číslo na řetězec:
let test = String(12345); // řetězec
alert(test[0]); // vypíše '1' - vše funguje
Nyní předpokládejme, že chceme najít součet prvních dou číslic:
let test = String(12345); // řetězec
alert(test[0] + test[1]); // vypíše '12' - sečte jako řetězce
Přidejme funkci Number proto, aby
se symboly sčítaly jako čísla:
let test = String(12345); // řetězec
alert(Number(test[0]) + Number(test[1])); // vypíše 3
Připomínám, že problém tohoto druhu nastane pouze při sčítání. Při násobení, například, lze převod na čísla neprovádět:
let test = String(12345); // řetězec
alert(test[1] * test[2]); // vypíše 6
Je dáno číslo 12345. Najděte součet číslic
tohoto čísla.
Je dáno číslo 12345. Najděte součin
číslic tohoto čísla.
Je dáno číslo 12345. Přeskupte číslice
tohoto čísla v obráceném pořadí.