练习,大数相加。
一、使用BigInt
使用 ES2020 引入的 BigInt
类型可以容易实现
二、兼容写法
其实也回归到我们小时候学习四则运算的时候,笔算过程。从个位数开始计算起。
const bigNumAdd = function (num1, num2) {
let result = '';
const len = Math.max(num1.length, num2.length);
num1 = num1.padStart(len, '0');
num2 = num2.padStart(len, '0');
let flag = 0;
for (let i = len - 1; i >= 0; i--) {
let temp = +num1[i] + +num2[i] + flag;
result = (temp % 10) + result;
flag = Math.floor(temp / 10);
}
if (flag) {
result = '' + flag + result;
}
return result;
};
const res1 = bigNumAdd('567', '879');
console.log('res1: ', res1);
很多时候的解决方案都是可以回归生活,所有问题就通了。