Sum Big Number From String

Vấn đề:

Khi cần cộng 2 số quá lớn (big number) mà không thích e (1e9 = 1 000 000 000)

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const sumStrings = (a, b) => {
const aStr = a.split('').reverse(),
bStr = b.split('').reverse(),
alen = a.length, blen = b.length,
len = alen > blen ? alen : blen
let rs = [],
remember = 0
for (let i = 0; i <= len; i++) {
const ai = +aStr[i]||0,
bi = +bStr[i]||0,
sumi = ai + bi + remember,
rss = (sumi < 10 ? '0' : '') + sumi,
[r, sumPoint] = rss.split('');
remember = +r
rs.push(sumPoint)
}
return rmvLeadZero(rs.reverse().join(''))
}
const rmvLeadZero = s => {
while (s.charAt(0) === '0')
s = s.substr(1)
return s
}

EX:

1
2
sumStrings('123', '321')//"444"
sumStrings('8797927323', '3232321')//"8801159644"