(NOTE: Hypothetical numbers are being used for the route in the arrays, to hide the location/nature of what I'm doing.

What I have is this:
jumpPath_Array = system.info.routeToSystem(System.infoForSystem(galaxyNumber,99), "OPTIMIZED_BY_TIME").route;
jumpPath_Array = jumpPath_Array + [,100,101,102];
jump_Counter = 1;
later it does:
nextStop = parseInt(jumpPath_Array[jump_Counter]);
jump_Counter = jump_Counter + 1;
(...and loops to nextStop again for each additional jump.)
Now assuming my ship is in system 98 and system 99 is a single hop away (optimized by time!)...
I expect the total array will look like this:
jumpPath_Array = [98,99,100,101,102];
And indeed when I do:
player.commsMessage("Jump Path = "+jumpPath_Array,6);
I get:
Jump Path = 98,99,100,101,102
I had to set jump_Counter to 1 instead of 0 because I found that
system.info.routeToSystem(System.infoForSystem(galaxyNumber,99), "OPTIMIZED_BY_TIME").route
...starts counting at the current system rather than the system.ID for the first jump destination.
So far so good...but now the problem.
I expect nextStop to equal 99 (the 2nd element from the array) the first time, but apparently the joined arrays are now (or always were?) a string.
...So nextStop equals 8 -- the 2nd character in the array "string".
I know I'm probably "doing it wrong", but I don't know how to correct it.