169 похожих чатов

Всем привет! Подскажите пожалуйста) Задачка, перевернуть массив не используя: метод reverse(),

дополнительный массив.
Оригинальный массив должен перевернуться.

Я сделала так. Но проблема в том что оригинальный массив копируется. И так же выводится, а за ним уже перевёрнутый. Я понимаю что происходит это из-за метода push. A.push(A[i]);
Как это можно заменить? Или такой код не подойдёт в данной задаче?

let A = [1, 5, 6, 2, 4];
console.log(A);

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

console.log(A);

19 ответов

12 просмотров

создай пустой, закинь в него и замени им?

Anna-Anna Автор вопроса
Максим
создай пустой, закинь в него и замени им?

да, так получается. Но условие таково что нельзя использовать дополнительный массив. Оригинальный должен поменяться

вам надо идти по индексам до середины и свопать элементы

Anna Anna
это как?)))

let A = [1, 5, 6, 2, 4]; console.log(A); for (i = A.length - 1, j = 0; i > Math.ceil(A.length / 2); i--, j++) { [A[j], A[i]] = [A[i], A[j]]; } console.log(A); скорей всего так

Anna-Anna Автор вопроса
Anna-Anna Автор вопроса
Максим
let A = [1, 5, 6, 2, 4]; console.log(A); for (i =...

Я ещё написала вот так. Но понимаю что это искусственно перевёрнуто, и задание то не в этом))) В общем как вариант) Метод splice также изменяет исходный массив. let A = [1, 5, 6, 2, 4]; console.log(A); for (i = A.length - 1; i >= 0; i--) { A.splice(0, 5, 4, 2, 6, 5, 1); } console.log(A);

Anna Anna
Я ещё написала вот так. Но понимаю что это искусст...

За splice я имел ввиду можно так let A = [1, 5, 6, 2, 4]; let aLength = A.length; console.log(A); for (i = A.length - 1; i >= 0; i--) { A.push(A[i]); } A.splice(0, aLength); console.log(A);

Максим
let A = [1, 5, 6, 2, 4]; console.log(A); for (i =...

Это валидный синтакс ? Так можно деструктить ?

Anna-Anna Автор вопроса
Максим
За splice я имел ввиду можно так let A = [1, 5, 6,...

Интересное решение) Спасибо!) А зачем мы присваиваем ещё одну переменную let aLength - т.е это те элементы которые будут удалены из исходного массива?

Anna Anna
Интересное решение) Спасибо!) А зачем мы присваива...

запомнить длину, можно просто текущую на 2 поделить если переменные не делать

Как вариант частного случая: let x = [1, 5, 6, 2, 4], [a, b, c, d, e] = x; x = [e, d, c, b, a];

Anna Anna
Спасибо)))

И немножко "экзотики" до кучи: 🙂🙃🙂 function customReverse(arr) { let count = 0; arr = arr.concat(arr); for(i = arr.length - 1; i >= (arr.length / 2); i--) { arr.copyWithin(count, i, i + 1); count++; } arr.length /= 2; return arr; }

Anna-Anna Автор вопроса

Похожие вопросы

Обсуждают сегодня

Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
10
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
Есть предложения, как подобное можно упростить?
Hemul GM
12
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
У меня вопросик назрел. Почему, создав класс без наследования и реализации деструктора Destroy, деструктор не вызывался при free. Потом указал наследование от tobject и overri...
Сергей Бычков
9
@y0zhig @shizzard А можно я опишу цель и может вообще ерланг мне не подходит. На текущий момент как я понимаю у ерланга есть легковесные потоки и задача выполняется в каком т...
Дмитрий Спиридонов
5
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
just use free version ?? pycharm has a free version
Fan / Ac
9
Карта сайта