a = [9, 9, 9, 9];
b = [9, 9, 9];
result = [1,0,9,9,8];
let max = Math.max(a.length - 1, b.length - 1);
for(let i = max; i >= 0; i--) {
a[i] + b[i]
}
0
) и переполнения предыдущего разряда. Цифра разряда нового числа - младший разряд суммы (т.е., остаток от деления на 10
).function sum(a, b) {
const result = [];
for (
let i = ~-a.length, j = ~-b.length, overflow = 0;
i >= 0 || j >= 0 || overflow;
i--, j--
) {
const digit = (a[i] | 0) + (b[j] | 0) + overflow;
overflow = +(digit > 9);
result.push(digit % 10);
}
return result.reverse();
}