JSFiddle - React, Tailwind, and code Playground

by kontrach

JavaScript

function sumStrings(a,b) {
   var firstStr = a.replace(/^0*/, ''),//'123456789',//'56789',
      secondStr = b.replace(/^0*/, ''),//'56789',//'123456789',
      firstLength = firstStr.length,
      secondLength = secondStr.length,
      delta = firstLength - secondLength,
      deltaModulo = Math.abs(delta),
      i = 4,
      zeros = '',
      firstArr,
      secondArr;
      
    while (deltaModulo--) zeros += '0';

    if (delta < 0) {
      firstStr = zeros + firstStr;
      firstLength = firstStr.length;      
    }

    if (delta > 0) {
      secondStr = zeros + secondStr;
    }
    
    firstArr = firstStr.split('');
    secondArr = secondStr.split('');
    
    var sum = 0,
        plusIsNeeded = false,
        modulo;
   
    var resArr = [];
   for (var j = firstLength-1; j >= 0; j--) {
       console.log(firstArr[j], secondArr[j]);
       if (plusIsNeeded) {
         sum = +firstArr[j] + +secondArr[j] + 1;
         plusIsNeeded = false;
       } else {
         sum = +firstArr[j] + +secondArr[j];
       }
       
       if (sum > 9) {
         sum = sum % 10;
         plusIsNeeded = true;
       }
       
       
       resArr.unshift(sum + '');
       
       if (j === 0 && plusIsNeeded) {
           resArr.unshift(1);
       }
    }

    return resArr.join('');  
}
/*
console.log(sumStrings('712569312664357328695151392', '256418100824045303269669937'));*/
//console.log(sumStrings('800', '9567'))
console.log(sumStrings('00103', '08567'))