Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/75: Рейтинг темы: голосов - 75, средняя оценка - 4.69
2 / 2 / 0
Регистрация: 19.03.2019
Сообщений: 54

Массив: Напишите программу, которая меняет массив так, чтобы его элементы шли в обратном порядке.

06.04.2019, 20:12. Показов 15561. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Техническое задание

Напишите программу, которая меняет массив так, чтобы его элементы шли в обратном порядке. (без использования array.reverse()).
Массив записан в переменную numbers.
Обратите внимание, что вам нужно поменять порядок элементов в массиве numbers. Создавать другую переменную для новой версии массива не нужно.


JavaScript
1
2
3
4
5
6
7
var numbers = [1, 3, 5, 7, 9, 11];
 
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;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2019, 20:12
Ответы с готовыми решениями:

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

Составить программу которая переворачивает список L, изменяет ссылки в этом списке так, чтобы его элементы оказались расположенными в обратном порядке
Составить программу, которая переворачивает список L, т.е. изменяет ссылки в этом списке так, чтобы его элементы оказались расположенными в...

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

14
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
06.04.2019, 22:24
Лучший ответ Сообщение было отмечено Олег971 как решение

Решение

Олег971, Вы ТЗ читали? Написано же
Цитата Сообщение от Олег971 Посмотреть сообщение
Создавать другую переменную для новой версии массива не нужно.
*/
Плюсом будет, если Вы начнете читать документацию к используемому инструменту. Например, наткнувшись на метод sort - https://developer.mozilla.org/... Array/sort - Вы узнаете, что если в качестве параметра ему передать калбек, то итерируемые элементы будт сравниваться по алгоритму описанному в нем.
Далее немного смекалки - это я про то что массив составлен по возрастанию, если его инвертить, то.........
JavaScript
1
2
3
let numbers = [1, 3, 5, 7, 9, 11];
numbers.sort((a,b) => b - a);
console.log(numbers); // [11, 9, 7, 5, 3, 1]
0
2 / 2 / 0
Регистрация: 19.03.2019
Сообщений: 54
06.04.2019, 23:09  [ТС]
Qwerty_Wasd, Понял, спасибо. Я просто сейчас курсы по JS прохожу и пока не застал метод sort.
Можете объяснить, пожалуйста, для чего в цикле длину массива делим на 2?
i < numbers.length / 2
0
 Аватар для arcmag
347 / 322 / 203
Регистрация: 27.06.2014
Сообщений: 762
06.04.2019, 23:29
Лучший ответ Сообщение было отмечено Олег971 как решение

Решение

Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
это я про то что массив составлен по возрастанию, если его инвертить
А если поставить 11 в начало массива? Это уже получится не совсем то...
Так наверное было бы более надёжно

JavaScript
1
2
3
4
let arr = [1, 3, 5, 7, 9, 11];
console.log(arr);
arr = arr.map((it, idx, arr) => arr[arr.length - 1 - idx]);
console.log(arr);
Цитата Сообщение от Олег971 Посмотреть сообщение
Можете объяснить, пожалуйста, для чего в цикле длину массива делим на 2?
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var numbers = [1, 3, 5, 7, 9, 11];
 
// длинна массива делится на 2 что бы поделить массив на две 
// условные части для перестановки элементов вплоть до их границы
for (var i = 0; i < numbers.length / 2; i++) {
  // временная переменная swap что бы хранить элемент 
  // который берётся из второй половины массива
  var swap = numbers[numbers.length - 1 - i];
  // элемент из второй части массива меняется местами 
  // с элементом из первой части массива
  numbers[numbers.length - 1 - i] = numbers[i];
  // элемент из первой части массива меняется местами 
  // с элементом из второй части массива
  numbers[i] = swap;
}
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
06.04.2019, 23:35
arcmag,
Цитата Сообщение от arcmag Посмотреть сообщение
А если поставить 11 в начало массива
это было бы другое ТЗ ))
0
 Аватар для arcmag
347 / 322 / 203
Регистрация: 27.06.2014
Сообщений: 762
06.04.2019, 23:49
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
это было бы другое ТЗ ))
Ну по данному ТЗ задача вроде как поменять элементы местами перевернув массив, а не отсортировать их... тогда бы наверное уточнили про sort, а не про reverse.
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
07.04.2019, 00:15
arcmag, по данному ТЗ -
меняет массив так, чтобы его элементы шли в обратном порядке. (без использования array.reverse()).
Массив записан в переменную numbers.
Обратите внимание, что вам нужно поменять порядок элементов в массиве numbers. Создавать другую переменную для новой версии массива не нужно
.
, но Вам явно не интересно что там написано, Вам интересно видимо продолжить бессмысленный в рамках темы спор))
Вариантов выполнить задачу, как ТС уже понял, не один. Это единственное, что имеет значение в этой теме. Наши с Вами фантазии, выходящие за рамки этой задачи - вторичны, а посему мне не интересны. Извините.
Еще варик кстати в догонку
JavaScript
1
[1, 3, 5, 7, 9, 11].reduceRight((e, i) => (e.push(i), e), [])
И тут меня понесло
JavaScript
1
2
console.log([1, 3, 5, 7, 9, 11].reduce((a, b) => [b].concat(a)));
console.log([1, 3, 5, 7, 9, 11].sort( a => -1));
0
 Аватар для arcmag
347 / 322 / 203
Регистрация: 27.06.2014
Сообщений: 762
07.04.2019, 00:23
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
Вам явно не интересно что там написано
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
Обратите внимание, что вам нужно поменять порядок элементов в массиве numbers.
Что же я не так понял?

Даже сам заголовок темы указывал на то что нужно именно развернуть массив, а не отсортировать по значениям.
Напишите программу, которая меняет массив так, чтобы его элементы шли в обратном порядке.
Мне просто показалось что то ваш вариант с sort оказался не совсем удачным для решения задачи в целом.
Честно говоря не ожидал что вы так обидитесь)

Добавлено через 1 минуту
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
Наши с Вами фантазии, выходящие за рамки этой задачи - вторичны, а посему мне не интересны. Извините.
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
Еще варик кстати в догонку
Настолько не интересны, что вы написали аж 3 интересных варианта решения ?
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
07.04.2019, 00:26
arcmag,
Цитата Сообщение от arcmag Посмотреть сообщение
Даже сам заголовок темы указывал на то что нужно именно развернуть массив, а не отсортировать по значениям.
инверсия массива без использования reverse(). Об использовании других методов речи не шло. Неужели Вы не обратили внимание? Вы не читаете внимательно ))
Цитата Сообщение от arcmag Посмотреть сообщение
Мне просто показалось что то ваш вариант с sort оказался не совсем удачным для решения задачи в целом.
Ну это нормально, было бы странно если бы мы "как в зеркало смотрелись"

Цитата Сообщение от arcmag Посмотреть сообщение
Честно говоря не ожидал что вы так обидитесь)
А вот это уже интересно... почему Вы так подумали?

Добавлено через 1 минуту
Цитата Сообщение от arcmag Посмотреть сообщение
Настолько не интересны, что вы написали аж 3 интересных варианта решения
Ну так Вы же меня в эту тему тянете))) Я собирался дать одно из решений и свалить смотреть сериальчик\ пить кофеёк \ есть печеньки \ посмотреть другие темы
0
 Аватар для arcmag
347 / 322 / 203
Регистрация: 27.06.2014
Сообщений: 762
07.04.2019, 00:32
Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
А вот это уже интересно... почему Вы так подумали?
Общий тон вашего текста настроил меня на такую мысль... но если нет, то прекрасно!

Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
Ну так Вы же меня в эту тему тянете)))
Да, это я умею
1
07.04.2019, 00:43

Не по теме:

arcmag,

Цитата Сообщение от arcmag Посмотреть сообщение
Общий тон вашего текста настроил меня на такую мысль
Заметил, что на ru-кластере, фон диалога в чатах, как-то больше зависит от наличия смайликов. А на реддит \ кворе запросто можно определить с каким полом или сексуальной ориентацией ты переписываешься - там обычно текст изобилует эмоджи в основном у девченок или ЛГБТ. На всякий случай уточню - это не намек ни на что. Лишь примечание, что диалог не приукрашенный смайлом, на ру настрораживает. Зря :)

0
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
07.04.2019, 03:25
Лучший ответ Сообщение было отмечено amr-now как решение

Решение

JavaScript
1
2
3
4
let numbers = [1, 3, 5, 7, 9, 11];
for(let i = 0, j = numbers.length - 1; i < j; i++, j--)
    [numbers[i], numbers[j]] = [numbers[j], numbers[i]];
console.log(numbers); //[11, 9, 7, 5, 3, 1]
2
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
07.04.2019, 03:37
klopp, приветствую )
Про destructuring assignment и позабыл как-то
0
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
07.04.2019, 04:06

Не по теме:

Цитата Сообщение от Qwerty_Wasd Посмотреть сообщение
и позабыл как-то
вы как-то больше о другом спорили:)

0
07.04.2019, 04:09

Не по теме:

klopp, вот поэтому мне и нравятся такие споры :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.04.2019, 04:09
Помогаю со студенческими работами здесь

Напишите программу, которая заполняет массив из N элементов в обратном порядке последовательными натуральными
Напишите программу, которая заполняет массив из N элементов в обратном порядке последовательными натуральными числами, начиная с последнего...

Напишите программу, которая заполняет массив из N элементов в обратном порядке последовательными натуральными
Здравствуйте,помогите пожалуйста написать код,спасибо.Напишите программу, которая заполняет массив из N элементов в обратном порядке...

Преобразовать массив, чтобы его элементы расположились в обратном порядке
Хелп Преобразовать массив а0, а1, а2,…, аn-1 так, чтобы его элементы расположились в обратном порядке: аn-1, аn-2,…, а0

Скопировать один массив в другой так, чтобы элементы оказались в обратном порядке
Пользуясь двумя указателями на массивы целых чисел, скопировать один массив в другой так, чтобы во втором массиве элементы находились в...

Массив: Преобразовать массив так, чтобы сначала шли элементы, модуль которых не превышает 1, а потом - остальные...
Преобразовать массив таким образом, чтобы сначала располагались, все элементы, модуль которых не превышает 1, а потом – все остальные....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru