2

使用 JavaScript,有没有办法在不先将其转换为字符串的情况下将两位数的数字相加?

例如,我想把数字 15 和它所组成的两个数字相加得到 6。现在,通常我会做这样的事情:

var myNum = 15,
    numString = myNum.toString(),
    firstNum = +numString[0],
    secondNum = +numString[1];

alert(firstNum + secondNum);

如何在不将数字转换为开头的字符串的情况下完成相同的结果?这甚至可能吗?

4

1 回答 1

7
> 15 % 10 + Math.floor(15 / 10)
6

或递归:

function sumDigits(n) {
  return n % 10 + (n > 0 ? sumDigits(Math.floor(n / 10)) : 0);
}
> sumDigits(123)
6
于 2013-05-07T14:52:11.237 回答