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


#22

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


#23

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

Ремарочка

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


#24

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


#25

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

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;

#26

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


#27

Ох уж эти циклы((, @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() все нашла и поняла, просто решила вложенные циклы потренировать)))).


#28

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

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

#29

Спасибо, с этим способом сообразила тоже. Но вложенный все-таки доконала))), т.к. подумала, что в Вашем примере и примерах выше конструкция 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);

#30

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


#31

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


#32

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


#33

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

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

for (j = numbers.length; j--;) {
  res.push(numbers[j])
}
numbers = res;
console.log(numbers);

#34

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


#35

Как то так

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;

#36

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


#37

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

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