Javascript 处理Number大数加法

function add() {
  const numsArray = [...arguments].map(item => {
    return [...(item+'')].map(item => { return +item})
  })
  const numArrayAdd = function(nums1, nums2){
    nums1 = nums1.reverse()
    nums2 = nums2.reverse()
    const length = nums1.length > nums2.length ? nums1.length : nums2.length
    const resultArray = []
    let addBitFlag = 0
    let addItem1 = 0
    let addItem2 = 0
    let res = 0
    
    for(let i = 0;(i < length || addBitFlag !== 0);i++){
      addItem1 = nums1[i] === undefined ? 0 : nums1[i]
      addItem2 = nums2[i] === undefined ? 0 : nums2[i]
      res = addItem1 + addItem2 + addBitFlag
      if(res > 9){
        addBitFlag = 1
        res = (res % 10)
      } else {
        addBitFlag = 0
      }
      resultArray[i] = res
    }
    return resultArray.reverse()
  }

  const sum = numsArray.reduce((prev, cur) => {
    return numArrayAdd(prev, cur)
  })
  return sum.join('')
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简单模拟,将字符串转整形数组储存,标记正负数,分四种情况计算。
    黑笑小说阅读 3,034评论 0 0
  • 1、大数乘法 (1)转换并反转,字符串转换为数字并将字序反转; (2)自动移位,逐位相乘,添加最后的进位; (3)...
    saviochen阅读 3,526评论 0 2
  • 4
    红昔昔阅读 461评论 0 2
  • ,世上最锋利的刀就是歹毒的话语,可以杀人于无形,把人伤的遍体鳞伤体无完肤甚至粉身碎骨 给时间时间让过去过去…… 人...
    夕柏玟阅读 2,454评论 0 6
  • 你什么时候来 我等了你好久呢 那时候云朵在蓝天怀里撒娇 我没等到你 那时候清风亲吻叶芽 我也没等到你 那时候鸳鸯戏...
    三人禾吖阅读 1,196评论 0 3