Check Digit Sum Javascript- recursionAdding digits from a number, using recursivity - javascriptHow do JavaScript closures work?How do I check if an element is hidden in jQuery?How do I remove a property from a JavaScript object?How do I check if an array includes an object in JavaScript?Which equals operator (== vs ===) should be used in JavaScript comparisons?Setting “checked” for a checkbox with jQuery?How do I include a JavaScript file in another JavaScript file?What does “use strict” do in JavaScript, and what is the reasoning behind it?How to check whether a string contains a substring in JavaScript?How do I remove a particular element from an array in JavaScript?

How to use awk to extract data from a file based on the content of another file?

Huffman Code in C++

Make me a minimum magic sum

Reverse ColorFunction or ColorData

All of my Firefox add-ons been disabled suddenly, how can I re-enable them?

Do Jedi mind tricks work on Ewoks?

Books of scary stories with two or three plots each

Why is the blank symbol not considered part of the input alphabet of a Turing machine?

Is crescere the correct word meaning to to grow or cultivate?

How do I, as a DM, handle a party that decides to set up an ambush in a dungeon?

Can I combine SELECT TOP() with the IN operator?

Installing Debian 10, upgrade to stable later?

Game artist computer workstation set-up – is this overkill?

Has the United States ever had a non-Christian President?

How is trade in services conducted under the WTO in the absence of the Doha conclusion?

What is a common way to tell if an academic is "above average," or outstanding in their field? Is their h-index (Hirsh index) one of them?

Do quaternary sulfur dications exist?

What do you call a painting painted on a wall?

How did the Force make Luke hard to hit in the Battle of Yavin?

How can I obtain and work with a Platonic dodecahedron?

Bounding the absolute value of a function with an integral

Summer '19 Sandbox error: String index out of range: 0: Source

What does the copyright in a dissertation protect exactly?

Is the US ESTA (Electronic System for Travel Authorization) a visa?



Check Digit Sum Javascript- recursion


Adding digits from a number, using recursivity - javascriptHow do JavaScript closures work?How do I check if an element is hidden in jQuery?How do I remove a property from a JavaScript object?How do I check if an array includes an object in JavaScript?Which equals operator (== vs ===) should be used in JavaScript comparisons?Setting “checked” for a checkbox with jQuery?How do I include a JavaScript file in another JavaScript file?What does “use strict” do in JavaScript, and what is the reasoning behind it?How to check whether a string contains a substring in JavaScript?How do I remove a particular element from an array in JavaScript?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








-4















Looking for Javascript solution in recursion to get the sum of all digits in number until single digit come as result



For example, for the number is "55555" the sum of all digits is 25. Because this is not a single-digit number, 2 and 5 would be added, and the result, 7.



I tried the below solution based on the algorithm.



function getSum(n) sum > 9) 

if(n == 0)

n = sum;
sum = 0;

sum += n % 10;
n /= 10;

return sum;


console.log(getSum("55555"));









share|improve this question
























  • Check here I have found same problem here

    – Dulanga Heshan
    Nov 13 '18 at 20:55

















-4















Looking for Javascript solution in recursion to get the sum of all digits in number until single digit come as result



For example, for the number is "55555" the sum of all digits is 25. Because this is not a single-digit number, 2 and 5 would be added, and the result, 7.



I tried the below solution based on the algorithm.



function getSum(n) sum > 9) 

if(n == 0)

n = sum;
sum = 0;

sum += n % 10;
n /= 10;

return sum;


console.log(getSum("55555"));









share|improve this question
























  • Check here I have found same problem here

    – Dulanga Heshan
    Nov 13 '18 at 20:55













-4












-4








-4


0






Looking for Javascript solution in recursion to get the sum of all digits in number until single digit come as result



For example, for the number is "55555" the sum of all digits is 25. Because this is not a single-digit number, 2 and 5 would be added, and the result, 7.



I tried the below solution based on the algorithm.



function getSum(n) sum > 9) 

if(n == 0)

n = sum;
sum = 0;

sum += n % 10;
n /= 10;

return sum;


console.log(getSum("55555"));









share|improve this question
















Looking for Javascript solution in recursion to get the sum of all digits in number until single digit come as result



For example, for the number is "55555" the sum of all digits is 25. Because this is not a single-digit number, 2 and 5 would be added, and the result, 7.



I tried the below solution based on the algorithm.



function getSum(n) sum > 9) 

if(n == 0)

n = sum;
sum = 0;

sum += n % 10;
n /= 10;

return sum;


console.log(getSum("55555"));






javascript






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 '18 at 20:44







A G J

















asked Nov 13 '18 at 20:33









A G JA G J

21




21












  • Check here I have found same problem here

    – Dulanga Heshan
    Nov 13 '18 at 20:55

















  • Check here I have found same problem here

    – Dulanga Heshan
    Nov 13 '18 at 20:55
















Check here I have found same problem here

– Dulanga Heshan
Nov 13 '18 at 20:55





Check here I have found same problem here

– Dulanga Heshan
Nov 13 '18 at 20:55












3 Answers
3






active

oldest

votes


















0














This would kind of work, but I'm almost sure there's a beautiful one-line solution which I just don't see yet.






function singleDigitSum(str) 
str = [...str].reduce((acc, c) => return Number(c) + acc , 0)
while (str.toString().length > 1)
str = singleDigitSum(str.toString());

return str


console.log(singleDigitSum("55555"))





Explanation:



As a first step in your function you reassign to the parameter passed to the function the result of a reducer function which sums up all numbers in your String. To be able to use Array.prototype.reduce() function, I'm spreading your str into an array using [...str].



Then, for as often as that reducer returns a value with more than one digit, rinse and repeat. When the while loop exits, the result is single digit and can be returned.






share|improve this answer

























  • it's not a pure recursion, you are using one another function reduce here .

    – Jaisa Ram
    Nov 13 '18 at 21:57


















0

















function checSumOfDigit(num, sum = "0") 

if (num.length == 1 && sum.length !== 1)
return checSumOfDigit(Number(sum) + Number(num) + "", "0");
else if (num.length == 1)
return Number(sum) + Number(num);

num = num.split("")
sum = Number(sum) + Number(num.pop());

return checSumOfDigit(num.join(""), sum + "")

console.log(checSumOfDigit("567"));
console.log(checSumOfDigit("123"));
console.log(checSumOfDigit("55555"));





this code might be help you






share|improve this answer






























    0














    If you need a recursion try this one



    function CheckDigitSum(number) 

    let nums = number.split('');
    if (nums.length > 1)
    let sum = 0;
    for (let i = 0; i < nums.length; i++)
    sum += Number(nums[i]);

    return CheckDigitSum(sum.toString());
    else
    return parseInt(nums[0], 10);







    share|improve this answer

























      Your Answer






      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "1"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53289076%2fcheck-digit-sum-javascript-recursion%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      0














      This would kind of work, but I'm almost sure there's a beautiful one-line solution which I just don't see yet.






      function singleDigitSum(str) 
      str = [...str].reduce((acc, c) => return Number(c) + acc , 0)
      while (str.toString().length > 1)
      str = singleDigitSum(str.toString());

      return str


      console.log(singleDigitSum("55555"))





      Explanation:



      As a first step in your function you reassign to the parameter passed to the function the result of a reducer function which sums up all numbers in your String. To be able to use Array.prototype.reduce() function, I'm spreading your str into an array using [...str].



      Then, for as often as that reducer returns a value with more than one digit, rinse and repeat. When the while loop exits, the result is single digit and can be returned.






      share|improve this answer

























      • it's not a pure recursion, you are using one another function reduce here .

        – Jaisa Ram
        Nov 13 '18 at 21:57















      0














      This would kind of work, but I'm almost sure there's a beautiful one-line solution which I just don't see yet.






      function singleDigitSum(str) 
      str = [...str].reduce((acc, c) => return Number(c) + acc , 0)
      while (str.toString().length > 1)
      str = singleDigitSum(str.toString());

      return str


      console.log(singleDigitSum("55555"))





      Explanation:



      As a first step in your function you reassign to the parameter passed to the function the result of a reducer function which sums up all numbers in your String. To be able to use Array.prototype.reduce() function, I'm spreading your str into an array using [...str].



      Then, for as often as that reducer returns a value with more than one digit, rinse and repeat. When the while loop exits, the result is single digit and can be returned.






      share|improve this answer

























      • it's not a pure recursion, you are using one another function reduce here .

        – Jaisa Ram
        Nov 13 '18 at 21:57













      0












      0








      0







      This would kind of work, but I'm almost sure there's a beautiful one-line solution which I just don't see yet.






      function singleDigitSum(str) 
      str = [...str].reduce((acc, c) => return Number(c) + acc , 0)
      while (str.toString().length > 1)
      str = singleDigitSum(str.toString());

      return str


      console.log(singleDigitSum("55555"))





      Explanation:



      As a first step in your function you reassign to the parameter passed to the function the result of a reducer function which sums up all numbers in your String. To be able to use Array.prototype.reduce() function, I'm spreading your str into an array using [...str].



      Then, for as often as that reducer returns a value with more than one digit, rinse and repeat. When the while loop exits, the result is single digit and can be returned.






      share|improve this answer















      This would kind of work, but I'm almost sure there's a beautiful one-line solution which I just don't see yet.






      function singleDigitSum(str) 
      str = [...str].reduce((acc, c) => return Number(c) + acc , 0)
      while (str.toString().length > 1)
      str = singleDigitSum(str.toString());

      return str


      console.log(singleDigitSum("55555"))





      Explanation:



      As a first step in your function you reassign to the parameter passed to the function the result of a reducer function which sums up all numbers in your String. To be able to use Array.prototype.reduce() function, I'm spreading your str into an array using [...str].



      Then, for as often as that reducer returns a value with more than one digit, rinse and repeat. When the while loop exits, the result is single digit and can be returned.






      function singleDigitSum(str) 
      str = [...str].reduce((acc, c) => return Number(c) + acc , 0)
      while (str.toString().length > 1)
      str = singleDigitSum(str.toString());

      return str


      console.log(singleDigitSum("55555"))





      function singleDigitSum(str) 
      str = [...str].reduce((acc, c) => return Number(c) + acc , 0)
      while (str.toString().length > 1)
      str = singleDigitSum(str.toString());

      return str


      console.log(singleDigitSum("55555"))






      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited Nov 13 '18 at 20:53

























      answered Nov 13 '18 at 20:48









      connexoconnexo

      23.6k93863




      23.6k93863












      • it's not a pure recursion, you are using one another function reduce here .

        – Jaisa Ram
        Nov 13 '18 at 21:57

















      • it's not a pure recursion, you are using one another function reduce here .

        – Jaisa Ram
        Nov 13 '18 at 21:57
















      it's not a pure recursion, you are using one another function reduce here .

      – Jaisa Ram
      Nov 13 '18 at 21:57





      it's not a pure recursion, you are using one another function reduce here .

      – Jaisa Ram
      Nov 13 '18 at 21:57













      0

















      function checSumOfDigit(num, sum = "0") 

      if (num.length == 1 && sum.length !== 1)
      return checSumOfDigit(Number(sum) + Number(num) + "", "0");
      else if (num.length == 1)
      return Number(sum) + Number(num);

      num = num.split("")
      sum = Number(sum) + Number(num.pop());

      return checSumOfDigit(num.join(""), sum + "")

      console.log(checSumOfDigit("567"));
      console.log(checSumOfDigit("123"));
      console.log(checSumOfDigit("55555"));





      this code might be help you






      share|improve this answer



























        0

















        function checSumOfDigit(num, sum = "0") 

        if (num.length == 1 && sum.length !== 1)
        return checSumOfDigit(Number(sum) + Number(num) + "", "0");
        else if (num.length == 1)
        return Number(sum) + Number(num);

        num = num.split("")
        sum = Number(sum) + Number(num.pop());

        return checSumOfDigit(num.join(""), sum + "")

        console.log(checSumOfDigit("567"));
        console.log(checSumOfDigit("123"));
        console.log(checSumOfDigit("55555"));





        this code might be help you






        share|improve this answer

























          0












          0








          0










          function checSumOfDigit(num, sum = "0") 

          if (num.length == 1 && sum.length !== 1)
          return checSumOfDigit(Number(sum) + Number(num) + "", "0");
          else if (num.length == 1)
          return Number(sum) + Number(num);

          num = num.split("")
          sum = Number(sum) + Number(num.pop());

          return checSumOfDigit(num.join(""), sum + "")

          console.log(checSumOfDigit("567"));
          console.log(checSumOfDigit("123"));
          console.log(checSumOfDigit("55555"));





          this code might be help you






          share|improve this answer
















          function checSumOfDigit(num, sum = "0") 

          if (num.length == 1 && sum.length !== 1)
          return checSumOfDigit(Number(sum) + Number(num) + "", "0");
          else if (num.length == 1)
          return Number(sum) + Number(num);

          num = num.split("")
          sum = Number(sum) + Number(num.pop());

          return checSumOfDigit(num.join(""), sum + "")

          console.log(checSumOfDigit("567"));
          console.log(checSumOfDigit("123"));
          console.log(checSumOfDigit("55555"));





          this code might be help you






          function checSumOfDigit(num, sum = "0") 

          if (num.length == 1 && sum.length !== 1)
          return checSumOfDigit(Number(sum) + Number(num) + "", "0");
          else if (num.length == 1)
          return Number(sum) + Number(num);

          num = num.split("")
          sum = Number(sum) + Number(num.pop());

          return checSumOfDigit(num.join(""), sum + "")

          console.log(checSumOfDigit("567"));
          console.log(checSumOfDigit("123"));
          console.log(checSumOfDigit("55555"));





          function checSumOfDigit(num, sum = "0") 

          if (num.length == 1 && sum.length !== 1)
          return checSumOfDigit(Number(sum) + Number(num) + "", "0");
          else if (num.length == 1)
          return Number(sum) + Number(num);

          num = num.split("")
          sum = Number(sum) + Number(num.pop());

          return checSumOfDigit(num.join(""), sum + "")

          console.log(checSumOfDigit("567"));
          console.log(checSumOfDigit("123"));
          console.log(checSumOfDigit("55555"));






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 13 '18 at 22:13









          Jaisa RamJaisa Ram

          27438




          27438





















              0














              If you need a recursion try this one



              function CheckDigitSum(number) 

              let nums = number.split('');
              if (nums.length > 1)
              let sum = 0;
              for (let i = 0; i < nums.length; i++)
              sum += Number(nums[i]);

              return CheckDigitSum(sum.toString());
              else
              return parseInt(nums[0], 10);







              share|improve this answer





























                0














                If you need a recursion try this one



                function CheckDigitSum(number) 

                let nums = number.split('');
                if (nums.length > 1)
                let sum = 0;
                for (let i = 0; i < nums.length; i++)
                sum += Number(nums[i]);

                return CheckDigitSum(sum.toString());
                else
                return parseInt(nums[0], 10);







                share|improve this answer



























                  0












                  0








                  0







                  If you need a recursion try this one



                  function CheckDigitSum(number) 

                  let nums = number.split('');
                  if (nums.length > 1)
                  let sum = 0;
                  for (let i = 0; i < nums.length; i++)
                  sum += Number(nums[i]);

                  return CheckDigitSum(sum.toString());
                  else
                  return parseInt(nums[0], 10);







                  share|improve this answer















                  If you need a recursion try this one



                  function CheckDigitSum(number) 

                  let nums = number.split('');
                  if (nums.length > 1)
                  let sum = 0;
                  for (let i = 0; i < nums.length; i++)
                  sum += Number(nums[i]);

                  return CheckDigitSum(sum.toString());
                  else
                  return parseInt(nums[0], 10);








                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Mar 24 at 3:36

























                  answered Mar 23 at 4:36









                  Daniel DeulinDaniel Deulin

                  316




                  316



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53289076%2fcheck-digit-sum-javascript-recursion%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

                      Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

                      Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript