总结一个数字Javascript的所有数字

新手上路,请多包涵

我是新手。

我想制作一个小应用程序来计算一个数字的所有数字的总和。

例如,如果我有数字 2568,应用程序将计算 2+5+6+8 等于 21。最后,它会计算 21 的数字之和,最终结果为 3 。

请帮我

原文由 Hodorogea Alexandru 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 234
2 个回答

基本上,您有两种方法来获取整数所有部分的总和。

  • 随着数值运算

取数字并构建十的余数并将其相加。然后取数字除以 10 的整数部分。继续。

 var value = 2568,
    sum = 0;

while (value) {
    sum += value % 10;
    value = Math.floor(value / 10);
}

console.log(sum);
  • 使用字符串操作

将数字转换为字符串,拆分字符串并获得包含所有数字的数组,并对每个部分执行归约并返回总和。

 var value = 2568,
    sum = value
        .toString()
        .split('')
        .map(Number)
        .reduce(function (a, b) {
            return a + b;
        }, 0);

console.log(sum);

要返回该值,您需要添加 value 属性。

 rezultat.value = sum;
//      ^^^^^^

 function sumDigits() {
    var value = document.getElementById("thenumber").value,
        sum = 0;

  while (value) {
      sum += value % 10;
      value = Math.floor(value / 10);
  }

  var rezultat = document.getElementById("result");
  rezultat.value = sum;
}
 <input type="text" placeholder="number" id="thenumber"/><br/><br/>
<button onclick="sumDigits()">Calculate</button><br/><br/>
<input type="text" readonly="true" placeholder="the result" id="result"/>

原文由 Nina Scholz 发布,翻译遵循 CC BY-SA 4.0 许可协议

这种使用模 9 算法的简单方法怎么样?

 function sumDigits(n) {
  return (n - 1) % 9 + 1;
}

原文由 fethe 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题