Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Найти сумму цифр числа (https://javascript.ru/forum/misc/66911-najjti-summu-cifr-chisla.html)

yaparoff 17.01.2017 15:19

Найти сумму цифр числа
 
Есть число 2017, как найти сумму его цифр?

ksa 17.01.2017 15:35

Цитата:

Сообщение от yaparoff
Есть число 2017, как найти сумму его цифр?

Пройтис в цикле по его символам... Преобразовать символ в натуральное число... Суммировать те числа.

yaparoff 17.01.2017 16:16

Цитата:

Сообщение от ksa
Пройтис в цикле по его символам

Вот именно это и интересует. Как разбить число по символам?
Например, вот так сработает:
'2017'.split('');
- выводиться: 2,0,1,7
А если это делать в функции?
function getNumbersSum(num){
  var result = 'num'.split('');
  alert(result);
}
getNumbersSum(2017);

тогда выводиться: n,u,m - и нет никаких чисел

laimas 17.01.2017 16:19

function getNumbersSum(num){
     return num.toString().split('').reduce(function(a, b) {
         return +a + +b;
     })
}

ksa 17.01.2017 16:32

Цитата:

Сообщение от yaparoff
А если это делать в функции?

Например так...

var n=12345;
alert((''+n).split(''));

Vlasenko Fedor 17.01.2017 23:54

function getSumNumber(num) {
    var sum = 0, tmp;
    while (num) {
        tmp = num % 10;
        num = (num - tmp) / 10;
        sum += tmp;
    }
    return sum;
}

alert(getSumNumber(2610));

вариант без использования преобразований

ruslan_mart 18.01.2017 05:12

var n = 2017;

alert( eval(n.toString().split('').join('+')) );


alert( eval(n.toString().replace(/\d/g, '+$&')) );

anwebsik 02.01.2021 19:32

Вот ответ фенкцией.
 
function digitSum(y) {
    let sum = 0, x = String(y);
    
    for (let i = 0; i < x.length; i++) {
        sum += Number(x[i]);
    }
    return(sum)
}

// if alert(digitSum(123)), output is 6.


Часовой пояс GMT +3, время: 10:22.