Прошу проверить на наличие ошибок решение "Задом Наперёд"

Мое решение :
var numbers = [1, 3, 5, 7, 9, 11];
for( var i=numbers.length-2; i>=0 ;i–) {
x=numbers[i];
numbers.push(numbers[i]);
}
for(var j=0; j<numbers.length-1; j++){
numbers.shift(numbers[j]);
}

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

var numbersClone = numbers;

numbers =[] /*не знаю можно ли обнулять массив, но проверку проходит*/


for (var i=0; i<=numbersClone.length -1; i++) {


numbers.unshift(numbersClone[i])
}`Текст "как есть" (без применения форматирования)`

Тоже удивляюсь что большинство в учебник или справочник не заглянули, хотя бы ради интереса.

Мой вариант через sort:

numbers=numbers.sort((a,i)=>-i)

1 лайк

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

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

Странно, но сработало:

var backwardsNumbers = numbers.reverse();
newFunction();
function newFunction() {
    console.log(backwardsNumbers);
}

Я решил использовать функцию Math.floor(), чтобы учесть массивы с нечетным количеством элементов.
Мой вариант кода:

var numbers = [1, 3, 5, 7, 9, 11];
var tmp = 0;

for ( var i = 0; i < Math.floor(numbers.length / 2); i++ ) {
  tmp = numbers[numbers.length - i - 1];
  numbers[numbers.length - i - 1] = numbers[i];
  numbers[i] = tmp;
};

var numbers = [1, 3, 5, 7, 9, 11];
var r = numbers.length - 1;
for (var i = 0; i < numbers.length; i++){
var swap = numbers[i];
numbers[i] = numbers[r];
if(numbers[r] = numbers[i]) {
numbers[r] = swap
r–;
if (r <= (numbers.length) / (5 / 2)) {
break;
}}}

Решаил так:
var numbers = [1, 3, 5, 7, 9, 11];

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

Только с тем материалом, который дали
var numbers = [1, 3, 5, 7, 9, 11];
var pog = [];

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

Объясните зачем на 2 делить длину массива?

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

Чтобы остановить цикл ровно на середине массива, так как дальше он поменяет элементы обратно, и массив будет такой же как изначальный. То-есть получиться цикл, который просто меняет элементы туда и обратно.

Здравствуйте!
Длину массива необходимо “/ 2”, так как при каждой итерации задействовано 2 элемента массива (элементы, которые меняются местами), вместо 1 элемента. Соответственно необходимо выполнить в 2 раза меньше итераций, чтобы пройти весь массив.

Изначально сделал просто с помощью arr.reverse(), так как два дня просто сидел и не мог решить.
Спустя неделю вернулся и немного подумал, оказалось, надо просто менять местами первый элемент с последним, второй элемент с предпоследним и т.д. и так до середины массива arr.length / 2 - 1

Сводка
let numbers = [1, 3, 5, 7, 9, 11, 26,10,12,30,8,23];

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

моё решение

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

Мой вариант:

let numbers = [1, 3, 5, 7, 9, 11, 6];
let end = numbers.length - 1;
let buf = 0;

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

console.log(numbers);

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

numbers.reverse()

У меня получилось два варианта, сначала я сделал через метод push():

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

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

Потом подумал, что добавлять лишние переменные неправильно и сделал так:

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 - 1 - i]
  numbers[numbers.length - 1 - i] = swap;
};

а я вот так насочинял опираясь на пройденный материал

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

Ну вдруг на собеседовании тебя попросят сделать подобное без использования ‘reverse()’