Odwoływanie się do cyfr liczby w JavaScript
Załóżmy teraz, że w zmiennej przechowujemy
nie liczbę w cudzysłowie, ale po prostu liczbę. W tym
przypadku próba odwołania się do jej pojedynczego
znaku zwróci undefined, ponieważ
takie odwołanie działa tylko dla ciągów znaków:
let test = 12345;
alert(test[0]); // zwróci undefined
Aby rozwiązać problem, przekształćmy naszą liczbę na ciąg znaków:
let test = String(12345); // ciąg znaków
alert(test[0]); // wyświetli '1' - wszystko działa
Załóżmy, że chcemy teraz znaleźć sumę pierwszych dwóch cyfr:
let test = String(12345); // ciąg znaków
alert(test[0] + test[1]); // wyświetli '12' - sumuje jako ciągi znaków
Dodajmy funkcję Number, aby
znaki były sumowane jako liczby:
let test = String(12345); // ciąg znaków
alert(Number(test[0]) + Number(test[1])); // wyświetli 3
Przypominam, że problem tego rodzaju pojawi się tylko podczas sumowania. Przy mnożeniu, na przykład, konwersji na liczby można nie wykonywać:
let test = String(12345); // ciąg znaków
alert(test[1] * test[2]); // wyświetli 6
Dana jest liczba 12345. Znajdź sumę cyfr
tej liczby.
Dana jest liczba 12345. Znajdź iloczyn
cyfr tej liczby.
Dana jest liczba 12345. Przestaw cyfry
tej liczby w odwrotnej kolejności.