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

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

Ох уж эти циклы((, @Hierumo, подскажите, что я делаю не так:

var numbers = [13, 8, 5, 27, 11, 7, 45, 3, 9];

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

// выводит [8, 27, 7, 3, 13, 11, 9, 45, 5]
console.log(numbers);

Про reverse() все нашла и поняла, просто решила вложенные циклы потренировать)))).

для решения через буфер вложенный цикл не требуется.

for (var i = 0; i < numbers.length / 2; i++) {
  var swap = numbers[numbers.length - 1 - i];
  numbers[numbers.length - 1 - i] = numbers[i];
  numbers[i] = swap;
}
1 Симпатия

Спасибо, с этим способом сообразила тоже. Но вложенный все-таки доконала))), т.к. подумала, что в Вашем примере и примерах выше конструкция numbers.length - 1 - i можно заменить на j вложенного цикла, но не знаю лаконичнее/лучше ли это:

var numbers = [13, 8, 5, 27, 11, 7, 45, 3, 9];

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

console.log(numbers);

нет, не лучше. вообще, говоря о целесообразности, в программировании используется концепция “Большого О”. Так вот, решение через 2 цикла это много сложнее, чем просто 1 цикл. в геометрической прогрессии сложнее.

1 Симпатия

Поняла. Спасибо :+1:t2:

У меня получилось так, прокомментируйте…

можно чуть упростить, все равно цикл через декремент массива:

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

for (j = numbers.length; j--;) {
  res.push(numbers[j])
}
numbers = res;
console.log(numbers);
3 Симпатий

Спасибо, чёт не подумал(

Как то так

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

for (var i = 1; i <= numbers.length; i++) {
  duble.push(numbers[numbers.length - i]);
}

numbers = duble;
1 Симпатия

Ооо. Клево. Не подумал

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

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

Вот так у меня всё получилось

Сводка

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

Проверьте, пожалуйста, решение:

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

Использовал shift

var numbers = [1, 3, 5, 7, 9, 11];
// Сначала добавляем элементы
count = numbers.length;
for (var i = count-2; i != -1; i–) {
numbers.push(numbers[i]);
}

// Удаляем первую половину чисел
for (var j = 0; j != count-1; j++){
numbers.shift(numbers[j]);
}

Мое решение. Не очень, но работает.

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

var swap = numbers.length - 1;

for ( var i = 0; i <= swap ; i++){
numbers.push(numbers[swap-i]);
console.log(numbers);
}

numbers.splice(0, swap+1)
console.log(numbers);

Мое решение :
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)