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'