Rozwiązanie Inn jest lepsze, ale możesz również zrobić coś takiego (na przykładzie JS - w innych językach będzie podobnie):
const array = ['pierwszy','drugi','trzeci','czwarty','piąty'];
console.log('Array : ' + array);
for(i=0;i<array.length/2;i++) {
let temp = array[i];
array[i] = array[(array.length-1) - i];
array[(array.length-1) - i] = temp;
}
console.log('Reversed array : ' + array);
Iterujesz (przechodzisz) przez połowę tablicy:
1) array.length/2 zadziała zarówno dla parzystej i nieparzystej ilości elementów w tablicy, ponieważ środkowego i tak nie podmieniasz.
2) iteracja po całej tablicy sprawiłaby, że zamienisz kolejność 2 razy i w efekcie dostaniesz to co na początku
Tworzysz sobie zmienną na 'tymczasowe' przechowywanie jednej z podmienianych wartości
1) gdybyś tego nie zrobił skopiowałbyś wartość tzn:
a=b ('a' podmienił na 'b')
b=a (później 'b' na 'a', które zostało już zamienione na 'b' w poprzednim kroku)
w efekcie dostałbyś 'b' 'b'
Wartości które zamieniasz to:
pierwszy element [i] // (dla i=0 jest zero)
drugi element [(array.length - 1) - i] // (dla i=0 jest to ostatni element od długości tablicy odejmujesz 1 bo indexy są liczone od zera)
Po iteracji pętli:
pierwszy element do zamiany jest pierwszym elementem tablicy [0], później się drugim [1], trzecim[2] itd
drugi element do zamiany jest ostatnim elementem tablicy [n-1 -0] , później przedostatnim elementem [n-1-1], następnie przed przedostatnim [n-1-2] itd
ale jak pisałem pomysł z reverse() uważam za lepszy.