主要思想
- 数字->字符串->数组->转置
- 操作数数组对齐,不齐位补0
- 数组对位相加,>10 进1位,结果push入新数组
- 数组转置,转字符串
var n1 = 98765432109
var n2 = 12345678900954
var arr_n1 = n1.toString().split('').reverse().map(item => Number(item))
// console.table(arr_n1);
var arr_n2 = n2.toString().split('').reverse().map(item => Number(item))
// console.table(arr_n2);
let arr_n1_length = arr_n1.length
let arr_n2_length = arr_n2.length
if (arr_n1_length < arr_n2_length) {
let pre = new Array(arr_n2_length - arr_n1_length)
pre.fill(0, 0, arr_n2_length - arr_n1_length)
arr_n1 = arr_n1.concat(pre)
} else {
let pre = new Array(arr_n1_length - arr_n2_length)
pre.fill(0, 0, arr_n1_length - arr_n2_length)
arr_n2 = arr_n2.concat(pre)
}
function plus(arr1, arr2) {
var n1 = 0, n2 = 0, tmp = 0, sum = 0
const result = [];
for (let index = 0; index < arr1.length; index++) {
n1 = arr1[index];
n2 = arr2[index];
sum = n1 + n2 + tmp;
if (sum > 9) {
sum -= 10
tmp = 1
}
else {
tmp = 0
}
result.push(sum)
}
if (tmp === 1) {
result.push(1)
}
return result
}
var result = plus(arr_n1, arr_n2).reverse()
console.table(result)