Решение: Задом наперед

Небольшая подсказка, для решения этой задачи можно использовать временные переменные, переставляя их с начала массива в конец и обратно

Code
let numbers = [1, 3, 5, 7, 9, 11];

for (let i = 0; i <= (numbers.length - 1) / 2; i++) {
 let swapLast =  numbers[numbers.length - (1 + i)];
 let swapFirst = numbers[i];
 
 numbers[i] = swapLast;
 numbers[numbers.length - (1 + i)] = swapFirst;
}
1 Симпатия
let numbers = [1, 3, 5, 7, 9, 11];
let k=0; 
if (numbers.length%2==1) { 
   for (let i=numbers.length-1; i>=(numbers.length-1)/2; i--) {
   let number = numbers[k]  
   numbers[k] = numbers[i]
   numbers[i] = number
   k++
  }
} else {
  for (let i=numbers.length-1; i>=numbers.length/2; i--) {
  let number = numbers[k]  
  numbers[k] = numbers[i]
  numbers[i] = number
  k++
  }
  }
  console.log(numbers);

Всем привет! Решил поделится своим решением, может мое сумбурное видение этой задачи кому-то поможет :slight_smile:

1 Симпатия

let numbers = [23,8,30,12,10,26];
console.log(numbers + ’ исходный’);

if (numbers.length < 6) {
for (let i = 0; i<numbers.length; i++) {
let lastValue;

for (let j = 0;j< numbers.length-2;j++) {
  lastValue = numbers[j];
  let swap = numbers[i];
  numbers[i] = lastValue;
  numbers[j] = swap;
}

}
} else {
for (let i = 1; i<numbers.length; i++) {
let lastValue = numbers.length;

for (let j = 0;j<= numbers.length-4;j++) {
  lastValue = numbers[j];
  let swap = numbers[i];
  numbers[i] = lastValue;
  numbers[j] = swap;
}

}
}
console.log(numbers + ’ результат’);
я попытался решить с помощью сортировки, как учили в теории, НО если в массиве шесть и более элементов, то средние два элемента не менялись, тогда я добавил условие, что если в массиве больше шести элементов, то немного изменяется цикл. Если кто может, подскажите, почему это работает ТАК?
ps.если в массиве будет больше 8 элементов, то средние элементы снова не поменяются, и придётся снова добавлять условие с новым циклом.
Можно ли как-то сделать этот код рабочим на 100% или это неверное решение?

let numbers = [1, 3, 5, 7, 9, 11];
let y = numbers.length - 1;

for (let i = 0; i < numbers.length/2; i++) {  
  let x = numbers[i];
  numbers[i] = numbers[y];
  numbers[y] = x;
  y--;
};
2 Симпатий

let numbers = [1, 3, 5, 7, 9, 11];
for(let i=numbers.length-1;i>=0;i–){
numbers.push(numbers[i]);
numbers.splice(0+i,1)

}
console.log(numbers);

1 Симпатия
let numbers = [1,461,192,1052,51];
let swap;

for(let i = 0, j = numbers.length -1; i < j; i++, j--){
swap = numbers[j];
numbers[j] = numbers[i];
numbers[i] = swap;
}

Наверное я ленивый, но есть и такое решение:

Код

let numbers = [1, 3, 5, 7, 9, 11];
numbers = numbers.reverse()

let numbers = [1, 3, 5, 7, 9, 11];

for (let i = 0; i < numbers.length/2; i++) {
  let swap = numbers[i];
  numbers[i] = numbers[numbers.length - (i + 1)];
  numbers[numbers.length - (i + 1)] = swap;
  }

Думаю вот это самое простое.

3 Симпатий

let numbers = [1, 3, 5, 7, 9, 11];
let numbersCopy = [];

for(let i = numbers.length-1; i >= 0; i–) {
numbersCopy.push(numbers[i]);
}

numbers = numbersCopy;

let numbers = [1, 3, 5, 7, 9, 11];

for (let i = 0; i < numbers.length; i++) {
  for (let j = i + 1; j < numbers.length; j++) {
    let swap = numbers[j];
    numbers[j] = numbers[i];
    numbers[i] = swap;
  }
}

Мой код определенно не совершенен, да и я тут новичек а код - рабочий! (минут 40-60 жизни отнял).

let numbers = [23, 8, 30, 12, 10];

let help = 1;

if (numbers.length % 2 == 0) {
for (let i=0; i<=(numbers.length / 2) - 1; i++) {
let swap = numbers[i];
numbers[i] = numbers[numbers.length-help];
numbers[numbers.length-help]=swap;
help++
}
}

if (numbers.length % 2 !== 0) {
for (let i=0; i<=Math.round(((numbers.length) / 2)-1); i++) {
let swap = numbers[i];
numbers[i] = numbers[numbers.length-help];
numbers[numbers.length-help]=swap;
help++
}
}

Красиво и действительно очень просто, благодарю что поделились. Я не начал в своих размышлениях пробовать такой вариант т.к. не знал что делать если numbers.length не четная и казалось что i < numbers.length / 2 сломает код, но в вашем решении это не важно, супер.

Я тут еще вариант набросал очень доступный по быстрому:
let numbers = [1, 3, 5, 7, 9, 11];
let help = 1;

for (let i=0; i<=(numbers.length-1)/2; i++) {
let swap = numbers[i];
numbers[i] = numbers[numbers.length-help];
numbers[numbers.length-help] = swap;
help++
}