Как посчитать сумму цифр числа в javascript

от admin

Как получить сумму цифр из числа?

Дается функция:
function digitSum(n) <> где «n» любое целое число от 0 до бесконечности.

Только только обучаюсь JS. Дошел только до этого:

Но не могу понять, числа который возвращаются это строка или массив? Что делать потом? Использовать reduce?
Дайте истинный путь, пожалуйста. Или может быть последовательность рассуждений. Или я, впринципе, в корне неправильно действую? Ответ не надо 🙂 Хочу подразобраться сам.

Строки с цифрами в JavaScript

Давайте найдем, например, сумму первого и второго ее символов:

Как вы видите, символы нашей строки также являются строками и суммируются как строки. Пусть мы хотим суммировать их как числа. Используем для этого функцию Number :

Дана строка ‘12345’ . Найдите сумму цифр этой строки.

Обращение к цифрам числа

Пусть теперь в переменной у нас хранится не число в кавычках, а просто число. В этом случае попытка обратится к его отдельному символу выдаст undefined , так как такое обращение работает только для строк:

Для решения проблемы преобразуем наше число в строку:

Пусть мы теперь хотим найти сумму первых двух цифр:

Добавим функцию Number для того, чтобы символы суммировались как числа:

Напоминаю, что проблема такого рода возникнет только при суммировании. При умножении, например, преобразование к числам можно не выполнять:

сумма цифр числа javascript

Я видел кучу других сообщений по этой теме, но ни одного в javascript. вот мой код.

Я получаю правильный ответ, я просто не полностью понимаю вторую функцию, а именно оператор while. Любая помощь будет принята с благодарностью. Спасибо!

4 ответа

Вторая функция использует оператор modulo для извлечения последней цифры:

Когда последняя цифра извлекается, она вычитается из числа:

И число делится на 10 :

Каждый раз, когда этот цикл повторяется, последняя цифра прерывается и добавляется к сумме.

Оператор modulo возвращает одиночную цифру, если левая сторона меньше правой (что произойдет для любого 1-значного числа), которое происходит, когда цикл прерывается:

Вот как добавляется лидирующая цифра к итогу.

Менее числовая альтернатива будет следующей:

Это буквально то, что вы пытаетесь сделать, итерации над цифрами числа (путем преобразования его в строку).

я использую его:)

i использую это:

Обновление (синтаксис ES6):

Не уверен, что вы имели в виду, если вы спрашивали о цикле while.

Оператор while постоянно выполняет блок операторов, в то время как конкретное условие истинно. Его синтаксис может быть выражен как:

Оператор while вычисляет выражение, которое должно возвращать логическое значение. Если выражение принимает значение true, оператор while выполняет оператор в блоке while. Оператор while продолжает тестирование выражения и выполнение его блока до тех пор, пока выражение не примет значение false.

Читать:
Wsl где хранятся файлы

Цикл while здесь извлекает цифры один за другим из фактического числа и добавляет их. Попробуйте сделать каждый шаг вручную, и вы получите его.

сумма цифр числа javascript

Я видел кучу других сообщений по этой теме, но ни одного в javascript. вот мой код.

Я получаю правильный ответ, я просто не совсем понимаю вторую функцию, а именно оператор while. Любая помощь будет принята с благодарностью. Спасибо!

задан 03 фев ’12, 23:02

4 ответы

Вторая функция использует оператор по модулю для извлечения последней цифры:

Когда извлекается последняя цифра, она вычитается из числа:

И число делится на 10 :

Каждый раз, когда этот цикл повторяется, последняя цифра обрезается и прибавляется к сумме.

Оператор по модулю возвращает одну цифру, если левая часть меньше правой (что произойдет для любого однозначного числа), что происходит при разрыве цикла:

Вот как первая цифра добавляется к общей сумме.

Менее числовой альтернативой было бы следующее:

Он делает буквально то, что вы пытаетесь сделать, а именно перебирать цифры числа (преобразовывая его в строку).

Это не сработает для экспоненциальных чисел. — Харви А. Рамер

я использую это 🙂

я использую это:

Обновление (синтаксис ES6):

Не уверен, что вы имели в виду, если вы спрашивали о цикле while ..

Оператор while постоянно выполняет блок операторов, пока выполняется определенное условие. Его синтаксис можно выразить как:

Оператор while вычисляет выражение, которое должно возвращать логическое значение. Если выражение истинно, оператор while выполняет оператор (ы) в блоке while. Оператор while продолжает тестирование выражения и выполнение его блока до тех пор, пока выражение не станет ложным.

Цикл while здесь извлекает цифры по одной из фактического числа и добавляет их. Попробуйте проделать каждый шаг вручную, и у вас все получится.

Вопрос не в том, как while работает, но про какой код внутри пока делал. 🙂 — Кен Уайт

Я имел в виду больше о том, как работает код внутри оператора while, но в любом случае спасибо за четкое объяснение — Ник Майринг

@NicMeiring Нет проблем, дайте мне знать, если вам все еще нужны дополнительные объяснения. — Салил

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками javascript parsing sum or задайте свой вопрос.

Похожие статьи