Пусть у нас есть строка, содержащая только цифры:
let test = '12345'; // строка с цифрами
Давайте найдем, например, сумму первого и второго ее символов:
let test = '12345';
alert(test[0] + test[1]); // выведет '12' - суммирует как строки
Как вы видите, символы нашей строки также
являются строками и суммируются как строки.
Пусть мы хотим суммировать их как числа.
Используем для этого функцию Number
:
let test = '12345'; // строка
alert(Number(test[0]) + Number(test[1])); // выведет 3
Дана строка '12345'
. Найдите сумму
цифр этой строки.
Обращение к цифрам числа
Пусть теперь в переменной у нас хранится
не число в кавычках, а просто число. В этом
случае попытка обратится к его отдельному
символу выдаст undefined
, так как
такое обращение работает только для строк:
let test = 12345;
alert(test[0]); // выдаст undefined
Для решения проблемы преобразуем наше число в строку:
let test = String(12345); // строка
alert(test[0]); // выведет '1' - все работает
Пусть мы теперь хотим найти сумму первых двух цифр:
let test = String(12345); // строка
alert(test[0] + test[1]); // выведет '12' - суммирует как строки
Добавим функцию Number
для того, чтобы
символы суммировались как числа:
let test = String(12345); // строка
alert(Number(test[0]) + Number(test[1])); // выведет 3
Напоминаю, что проблема такого рода возникнет только при суммировании. При умножении, например, преобразование к числам можно не выполнять:
let test = String(12345); // строка
alert(test[1] * test[2]); // выведет 6
Дано число 12345
. Найдите сумму цифр
этого числа.
Дано число 12345
. Найдите произведение
цифр этого числа.
Дано число 12345
. Переставьте цифры
этого числа в обратном порядке.