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

намана, но для массивов есть метод .reverse() :sweat_smile:

2 лайка

Благодарствую!)

Ремарочка

Думаю, что цель задания была - найти решение с использованием полученных знаний о массивах, а не читтерство с использованием готовых методов :wink:

ну вообще да, но эт для тех, кто с программированием не дружил до этого, а так можно велосипед не изобретать, использовать встроенный в язык метод (т.е. не библиотеку стороннюю даже).

1 лайк

Вот ещё вариант:

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

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

numbers = srebmun;
1 лайк

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

Ох уж эти циклы((, @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;
}
}
}

1 лайк

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

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);