Javascript возвращает обратный порядок

JavaScript метод reverse()

JavaScript метод reverse() позволяет обратить порядок следования элементов массива, таким образом, что первый элемент массива становится последним, а последний элемент первым (размещает элементы объекта Array в обратном порядке). При использовании метода reverse() новый массив не создается, а возвращается ссылка на текущий уже измененный массив.

Обращаю Ваше внимание, что если массив не является непрерывным (существуют разрывы между индексами), то метод reverse() заполняет эти разрывы элементами со значением undefined .

Поддержка браузерами

JavaScript синтаксис:

Версия JavaScript

Значения параметров

Пример использования

var x = [1, 2, 3, "a", "b", "c"]; // инициализируем переменную, содержащую массив x.reverse(); // значение переменной ["c", "b", "a", 3, 2, 1] var y = [1, 2, 3]; // инициализируем переменную, содержащую массив y[5] = 6; // добавляем значение 6 под индексом массива 5 y.reverse(); // значение переменной [6, undefined, undefined, 3, 2, 1] 

© 2016-2023 Денис Большаков, замечания и предложения по работе сайта Вы можете направить по адресу basicweb.ru@gmail.com

Кажется, вы используете блокировщик рекламы 🙁

Этот ресурс не является коммерческим проектом и развивается на энтузиазме автора сайта, который посвящает все свое свободное время этому проекту.

Добавьте, пожалуйста, basicweb.ru в исключения блокировщика рекламы, этим вы поможете развитию проекта.

Источник

Array.prototype.reverse()

Метод reverse() на месте обращает порядок следования элементов массива. Первый элемент массива становится последним, а последний — первым.

Интерактивный пример

Синтаксис

Параметры

Возвращаемое значение

Описание

Метод reverse() на месте переставляет элементы массива, на котором он был вызван, изменяет массив и возвращает ссылку на него.

Примеры

Пример: обращение порядка элементов в массиве

В следующем примере создаётся массив myArray , содержащий три элемента, а затем массив переворачивается.

var myArray = ['один', 'два', 'три']; myArray.reverse(); console.log(myArray) // ['три', 'два', 'один'] 

Спецификации

Совместимость с браузерами

BCD tables only load in the browser

Читайте также:  Красивая кнопка html кодами

Смотрите также

Found a content problem with this page?

This page was last modified on 7 нояб. 2022 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

Our communities

Developers

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

Источник

reverse

Данный метод изменяет исходный массив.
После его применения порядок элементов в массиве меняется на обратный.

Он возвращает ссылку на измененный массив.

arr = [1,2,3] a = arr.reverse() // [ 3, 2, 1] for(var i=0; i 

Обратите внимание, никакого нового массива не создается. Изменяется сам массив arr и возвращается ссылка на измененный массив.

arr = [1,2,3] a = arr.reverse() // [ 3, 2, 1] alert(a === arr) // true

См. также

Не повторяйте моей ошибки — я считал, что этот метод сортирует массив по убыванию. На самом деле, он просто меняет порядок следования элементов на противоположный.

var arr = ['c', 'a', 'b', 'd']; arr.reverse(); alert(arr); // Вернет: d,b,a,c

А я вообще всегда думал, что reverse() генерирует новый массив и возвращает ссылку на него, а старый остаётся без изменений. Если бы не JS-консоль и мой гениальный моск, я бы так и дальше думал.

но всё же, почему разработчики так не сделали? к примеру, хотелось бы делать так:

var a = [1,2,3,4]; var b = a.reverse(); alert(a); // 1,2,3,4 alert(b); // 4,3,2,1

Это фишка производительности или что?
В текущем существующем случае для получения вышеописанного метода приходится делать так:

var a = [1,2,3,4]; var b = a.concat([]); // ну или ещё как нибудь полностью дублировать массив (именно дублировать, создать копию вместо передачи по ссылке, однако тут встаёт вопрос о передаче элементов массива по ссылке, нет времени разбираться) b.reverse(); alert(a); // 1,2,3,4 alert(b); // 4,3,2,1

Что мешает расширить прототип?

Array.prototype.reversedCopy = function()< var arr = []; for( var i = this.length; i--; )< arr.push( this[i] ); >; return arr; >; var a = [1, 2, 3]; var b = a.reversedCopy(); alert(a); // [1, 2, 3] alert(b); // [3, 2, 1]

А зачем? И так же работает
var a = [1,2,3,4];
var b = a.reverse();
console.log(b);

Читайте также:  Сортировка шейкер в питоне

Прототипы — сила. Можно еще reverse() для String задать:

String.prototype.reverse = function () < return this.split('').reverse().join(''); >);

ошибка в последней строке
>);
надо убрать скобку перед ;

Илья спасибо за подробное объяснение, все это работает, а как насчет например если -123? чтобы вернуло -321?
вот мой код
var x = 123;
var reverse = function (x) var n = x.toString();
var rev = [];
for (var i = n.length-1; i >=0; i—) rev+=n[i]
>
return parseInt(rev)

ФУНКЦИЯ ВОЗВРАЩАЕТ ЗНАЧЕНИЕ — ЗНАЧИТ ПРОСТОЙ ЕЕ ВЫЗОВ НИЧЕГО НЕ ДАСТ!!
НАДО ПРИСВОИТЬ ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ. Т.Е

и не обязательно в функции обьявлять переменную rev как массив,
так как вместо числа фунция вернет не число, а массив, что не есть хорошо.

т.е. окончательно код функции вместе с ее вызовом будет такая

var x = 123;
var reverse = function (x) var n = x.toString();
var rev = «»;
for (var i = n.length-1; i >=0; i—) rev+=n[i];
return parseInt(rev);
>
document.write(x+»»);
y=reverse(x);
document.write(y+»»);

Могёт кто нибудь подсказать зачем нужны скобки у reverse()

потому что это метод, а не свойство ))

Помогите пожалуйста! Мне надо на JS написать функцию которая будет работать аналогично методу reverse() но н должна использовать данный метод

Источник

.reverse ( )

Метод reverse ( ) обращает порядок элементов в массиве в обратном направлении, то есть делает первый элемент последним, а последний — первым.

Метод изменяет массив, по отношению к которому вызван, и возвращает ссылку на изменённый массив.

Пример

Скопировать ссылку «Пример» Скопировано

При вызове reverse ( ) для массива [1 , 2 , 3 ] он превратится в [3 , 2 , 1 ] .

 const array = [1, 2, 3]array.reverse()console.log(array)// [3, 2, 1] const array = [1, 2, 3] array.reverse() console.log(array) // [3, 2, 1]      

Как пишется

Скопировать ссылку «Как пишется» Скопировано

Читайте также:  Inheritance vs composition java

Метод reverse ( ) не принимает аргументов.

Как понять

Скопировать ссылку «Как понять» Скопировано

Метод reverse ( ) не создаёт новый массив, а изменяет текущий.

Так как метод не создаёт новый массив, а изменяет существующий, то возвращаемое значение — это только ссылка на исходный массив.

Сохраним возвращённое значение в переменную и убедимся, что это ссылка на тот же массив:

 const arr = [1, 2, 3]const result = arr.reverse() console.log(result)// [3, 2, 1]console.log(arr)// [3, 2, 1] console.log(result === arr)// true const arr = [1, 2, 3] const result = arr.reverse() console.log(result) // [3, 2, 1] console.log(arr) // [3, 2, 1] console.log(result === arr) // true      

Если у массива есть «дырки» между элементами, то метод развернёт массив с учётом этих «дырок». Создадим массив с «дыркой»:

 const array = [1, 2, 3]array[5] = 6 console.log(array)// [ 1, 2, 3, 2 × empty, 6 ] array.reverse()console.log(array)// [6, 2 × empty, 3, 2, 1] const array = [1, 2, 3] array[5] = 6 console.log(array) // [ 1, 2, 3, 2 × empty, 6 ] array.reverse() console.log(array) // [6, 2 × empty, 3, 2, 1]      

Источник

Оцените статью