// 超大数加法运算,返回字符串
function add(a, b) {
// 将两个数转成数组并reverse
var a1 = String(a).split('').reverse();
var b1 = String(b).split('').reverse();
// 获取位数较大的数,做循环操作
var len = Math.max(a1.length, b1.length);
// 结果数组
var sum = [];
// 用于缓存进位
var next = 0;
// 从个位数开始循环,依次操作两个数相同位相加
for(var i=0; i<len; i++) {
var temp = Number(a1[i] || 0) + Number(b1[i] || 0) + Number(next);
// 两位数进位操作,个位数保存至sum[i],十位数缓存到next
if(temp > 9) {
sum[i] = String(temp).split('')[1];
next = String(temp).split('')[0];
}else{
sum[i] = temp;
next = 0;
}
}
return sum.reverse().join('');
}
console.log(add('12321321321321472132091', '28132187218468127482147120'));
console