JSFiddle - React, Tailwind, and code Playground

by TheDiamondDoge

JavaScript

function sumStrings(a,b) { 
  let reverseA = a.split("").reverse();
  let reverseB = b.split("").reverse();
  
  let numLength = -1;
  
if (reverseA.length < reverseB.length) {
    numLength = reverseB.length;
    let tmp = reverseA;
    reverseA = reverseB;
    reverseB = tmp;
  } else {
    numLength = reverseA.length;
  }
  
  console.log(reverseA, reverseB)
  
  let result = [];
  let dec = 0;
  for(let i = 0; i < numLength; i++) {
    let fullSum = (Number(reverseA[i]) || 0) + (Number(reverseB[i]) || 0);
  
    if (fullSum || (fullSum && !dec)) {
      let digit = fullSum > 9 ? fullSum % 10 : fullSum;
   
       console.log(digit);
   
      let res = digit + dec;
      if (res > 9) {
        dec = Math.floor(res / 10) 
        res = (digit + dec) % 10;
      }
     
      result.push(res);
      dec = fullSum > 9 ? Math.floor(fullSum / 10) : 0;
      
    }
  }
  
  if (dec != 0) {
    result.push(dec);
  } 
  
  return result.reverse().join("");
}

console.log(sumStrings('80', '955')) //- Expected: '10367', instead got: '1367'