js大数相加

js的数值是有上限的,但是如果我们需要超过上限的数来相加怎么办,这个题也是面试经常会考的一个题。

function add(a,b){
    let arrA = (a+'').split(''),
        arrB = (b+'').split(''),
        res = '',
        acc = 0

    while(arrA.length || arrB.length || acc){
        acc += ~~arrA.pop() + ~~arrB.pop()
        res = (acc % 10) + res
        acc = acc > 9
    }
    return res.replace(/^0+/,'')
}

思路: 1.将传入的两个数转为数组

2.把数组的最后一个值拿出来相加,并取整(~~)

3.把相加的结果的个位数拿出来附给res(由于res是字符串所以这个地方相加的结果也就是字符串)

4.判断acc是否大于9,如果大于9则说明需要进1,这里判断如果是true则在下次相加时acc就会是1,false则为0。

5.当数组的长度都清空且acc也是0的时候就停止循环。

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

推荐阅读更多精彩内容

  • 一般情况下用js写一个两个数相加的函数很简单,如下: 我们在控制台运行一下,发现打印出了4,没有问题 但是我们改一...
    鱼仔1234阅读 11,879评论 1 5
  •   引用类型的值(对象)是引用类型的一个实例。   在 ECMAscript 中,引用类型是一种数据结构,用于将数...
    霜天晓阅读 4,775评论 0 1
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,446评论 0 4
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 13,090评论 0 3
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,937评论 0 5