如何将数字分成个人

时间:2016-04-21 06:14:44

标签: javascript

我有这整数 75892 。我想将它拆分为个人,然后在下面添加我的代码。它工作正常,但有没有其他解决方案来最小化我的代码?谢谢

var x=75892;
var d,ans=0;
while(x!=0){
    d=x%10;
    ans=ans+d;
    x=parseInt(x/10);
}
document.write("SUM:"+ans);

7 个答案:

答案 0 :(得分:1)

除了parseInt部分之外,这种方法很好。 parseInt将首先将数字转换为字符串,然后解析该字符串。你想要Math.floor

x = Math.floor(x / 10);

您也可以使用+=,一般情况下您可以使用以下几种快捷方式:

var x = 75892;
var ans = 0;
while (x != 0) {
    ans += x % 10;
    x = Math.floor(x / 10);
}
document.write("SUM:" + ans);

另一种方法是通过数字,例如基于字符串的方法而不是基于数学的方法。但坦率地说,我认为这不会更好。

答案 1 :(得分:0)

var x="" + 75892;
var sum = 0;
for( var i = 0; i < x.length; i++ )
{
 sum += parseInt( x[i] );
}
console.log( "sum: " + sum );

请尝试一次。

答案 2 :(得分:0)

使用,请查看Sum of a string of one-digit numbers in javascript?

var sum = function(a,b){return a+b}

function stringSum(s) {
    var int = function(x){return parseInt(x,10)}
    return s.split('').map(int).reduce(sum);
}
document.write(stringSum("75892"))

答案 3 :(得分:0)

你想要更短 - 这是一个单线ES6版本:

var ans = [...(String(x))].map(Number).reduce((p, c) => p + c);

x的字符串化版本使用spread,将其转换为数字,然后使用reduce对数字求和。

DEMO

答案 4 :(得分:0)

以下代码是,当我在大学时代被认为,现在与你分享。 美丽没有循环

var x=75892;
var d,ans = 0;
x = parseInt(x);
if(x < 0){
    x = -1 * x;
}
if(x > 0){
    d = x % 9;
    if(d == 0){
        ans = 9;
    }else{
        ans = d;
    }
}
document.write("SUM:"+ans);

答案 5 :(得分:0)

您只需要拆分变量 -

var x=75892;
var arr = x.split('');
var count=0;
for (var i=arr.length; i--;) {
  count = count+parseInt(arr[i]);
}

答案 6 :(得分:0)

如果你问的是否有更聪明的方法,而不仅仅是在最后剥掉数字,那么不 - 至少不在十进制系统中。

除非您想减少到一位数(例如75892 - > 31 - > 4),否则

function(d){
   if(d === 0){
      return 0;
   }
   var m = d%9;
   return m === 0 ? 9 : m;
}

会做的伎俩