LegioN
07.Сентябрь.2018 11:35:09
3
Я так понимаю, проверка вызова “Задом наперёд” не работает (элементы массивов, с которыми происходит сравнение в тестах, не отсортированы)?
Решение
var numbers = [1, 3, 5, 7, 9, 11];
for (var i = 0; i < numbers.length; i++) {
for (var j = i + 1; j < numbers.length; j++) {
if (numbers[j] > numbers[i]) {
var temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
}
Тесты
Ineska
07.Сентябрь.2018 16:00:06
4
В этом задании не нужно сортировать от большего к меньшему, а только изменить порядок элементов.
3 лайка
LegioN
07.Сентябрь.2018 17:40:43
5
И правда. Не дочитал Спасибо
serg988
12.Сентябрь.2018 17:43:41
7
Не уверен, что применение функции удаления элементов массива приветствуется, но все же.
var numbers = [1, 3, 5, 7, 9, 11];
var x = numbers.length;
for (var i = numbers.length -1; i >= 0; i–) {
numbers.push(numbers[i]);
}
numbers.splice(0, x);
Для меня это было самая сложная задача, подсмотрел принцип у igor-provotorov и решил только тогда
Задом наперёд
console.log('Программа "Задом наперёд" ');
var numbers = [1, 3, 5, 7, 9, 11];
console.log('Начальный массив чисел : ' + numbers);
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;
}
console.log('Числа задом наперед : ' + numbers);
P.s. Как написал бы господин SNPR
А у меня так вышло :
numbers.reverse();
5 лайков
eoogen
21.Сентябрь.2018 12:07:55
9
var numbers = [1, 3, 5, 7, 9, 11];
for (var i = numbers.length -1; i >= 0; i–) {
numbers == numbers.push(numbers[i]);
}
numbers.splice(0, numbers.length/2);
1 лайк
такой варик
var numbers = [1, 3, 5, 7, 9, 11];
var reverse = []
for (var i = numbers.length-1; i >= 0; i-- ) {
reverse.push(numbers[i])
}
numbers = reverse
5 лайков
sanjoyz
25.Сентябрь.2018 08:01:05
11
Честно нагуглено на stackoverflow, но как мне кажется, решение очень универсально и подходит для всех языков
var numbers = [1, 3, 5, 7, 9, 11];
for (i = 0, j = numbers.length -1; i < j; i++, j--) {
var temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
}
4 лайка
Прикольно, цикл оказывается можно делать с двумя переменными)
У меня вот так получилось:
var j = numbers.length - 1;
for (var i = 0; i <= (numbers.length - 1)/ 2; i ++) {
var swap = numbers[i];
numbers[i] = numbers[j];
numbers[j] = swap;
j --;
}
Я вот так решил:
if (numbers.length % 2 !== 0) { var medianIndex = (numbers.length - 1) / 2;
} else { var medianIndex = numbers.length / 2; };
for (var i = 0; i<medianIndex; i++){
swap = numbers[i];
numbers[i] = numbers[numbers.length - 1 - i];
numbers[numbers.length- 1 - i] = swap;
};
S.K
11.Декабрь.2018 10:27:14
14
var numbers = [1, 3, 5, 7, 9, 11];
var numbersNew = [];
for (var i = 1; i <= numbers.length; i++) {
numbersNew.push(numbers[numbers.length - i]);
}
numbers = numbersNew;
var numbers = [1, 3, 5, 7, 9, 11];
numbers.reverse();
5 лайков
BigBug
26.Декабрь.2018 11:54:19
16
Без создания новых переменных.
var numbers = [1, 3, 5, 7, 9, 11];
for (var i = 0; i < Math.floor(numbers.length / 2); i++) {
numbers[i] += numbers[numbers.length - 1 - i];
numbers[numbers.length - 1 - i] = numbers[i] - numbers[numbers.length -1 - i];
numbers[i] -= numbers[numbers.length - 1 - i];
}
var numbers = [1, 3, 5, 7, 9, 11];
var i=0;
var j=numbers.length-1;
var swap=0;
while (i<=j){
swap=numbers[j];
numbers[j]=numbers[i];
numbers[i]=swap;
i++;j--;
}
Все почему-то через for решили. По моему, через while намного элегантнее получается
2 лайка
если и так и так возможно, то лучше использовать for с инкрементом. он отрабатывается быстрее в большинстве браузеров
1 лайк
sako
31.Январь.2019 14:31:51
19
var i = numbers.length-1;
for (var j = 0; j <= i; j++) {
var swap = numbers[j];
numbers[j] = numbers[i];
numbers[i] = swap;
i–;
}
1 лайк
Всем привет.
Без использования новой переменной для масива:
var numbers = [1, 3, 5, 7, 9, 11];
for (var i = 0; i < numbers.length / 2; i++) {
var index = numbers[i];
var x = numbers[numbers.length - i - 1];
numbers[numbers.length - i - 1] = index;
numbers[i] = x;
console.log(numbers);
}
Всем привет!)
Может кто-то чекнуть, насколько приемлемо мое решение?
var numbers = [1, 3, 5, 7, 9, 11];
var i = 0;
var swap = numbers[i];
while ( i < numbers.length/2){
numbers[i] = numbers[numbers.length - 1 - i];
numbers[numbers.length - 1 - i] = swap;
++i;
swap = numbers[i];
}