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'))