I need help to improve my solution. I got FATAL ERROR in a coding challenge in codewars site. That is mean my solution is not working with big inputs like:

overTheRoad(23633656673,310027696726);

My code so far:

function overTheRoad(address, n) {
let odd = [];
let even = [];
for (let i = 2; i <= n * 2; i += 2) {
even.push(i);
}
for (let i = 1; i <= n * 2; i += 2) {
odd.push(i);
}
even = even.reverse();
return address % 2 === 0
? odd[even.indexOf(address)]
: even[odd.indexOf(address)];
}

There exists a general formula for the number components of any given row of a table with n rows constructed in such a way that the odd numbers ascend in the left column and the even numbers descend in the right.

Consider n=3.
n is our number of rows. So weâ€™re going to arrange the addresses of 6 houses.

Odd

Even

1

6

3

4

5

2

Letâ€™s take a look at the rows. Specifically, the sum of the rows.
1+6 = 7
3+4 = 7
5+2 = 7
Interesting. All the rows add to the same value.

Letâ€™s try being general; n rows.

Odd

Even

1

2n

3

2n-2

5

2n-4

â€¦

â€¦

2n-5

6

2n-3

4

2n-1

2

What happens if we sum these rows?
Well, 1+2n isâ€¦ 2n+1.
3+2n-2 is â€¦ 2n+1â€¦
5+2n-4 is â€¦ 2n+1â€¦
hmmâ€¦ what about the end ones thoughâ€¦
2n-5+6 is 2n+1,
2n-3+4 is 2n+1,
2n-1+2 is 2n+1â€¦
So every row adds to a value - 2n +1.

Letâ€™s take that as a formula then.
For any two addresses in this system that are across the street from each other, a and b, a+b = 2n + 1.
Note that it doesnt matter which of the two is even or odd; a and b are interchangable.
(Also, intuitively, we can say that the sum of a row must be odd, because one of the addresses is even, and the other is odd; odd+even = odd. Any odd number can be defined as 2m+1, where m is an integer.)

Then it becomes a simple algebra equation: Given address (a) and the number of rows n, what is b?
Solve for b. a + b = 2n + 1 b = 2n + 1 - a
(Thereâ€™s no actual need for parenthesis, or the order of adding/subtracting: (2n+1)-a = (2n-a)+1.)