大数相加代码分析

2019-06-21  本文已影响0人  AAA前端
function sumString (a,b){
  var res = '', c=0;
  a = a.split('');
  b = b.split('');
  while(a.length || b.length || c){
    console.log(c)
    c += ~~a.pop() + ~~b.pop()
    console.log(c)
    res= c % 10 +res;    
    c = c > 9;
    console.log('一次循环结束',c, res)
  }
  return res.replace(/^0+/, '')
}

console.log(sumString('23', '119'))

0
12
一次循环结束 true 2
true
4
一次循环结束 false 42
false
1
一次循环结束 false 142
142

a = a.split(''); b = b.split('');

while(a.length || b.length || c){

c += ~~a.pop() + ~~b.pop()

res= c % 10 +res;

c = c > 9;

return res.replace(/^0+/, '')

*第三次循环
[].pop() 为undefined ~~[].pop()为0
c = false + 0 + 1 = 1
res = 1+ 上次循环保存的两位数42 = 142
c<9 为false

上一篇下一篇

猜你喜欢

热点阅读