Array.prototype.reverse()

Метод reverse() (розвернути) розвертає масив на місці й повертає посилання на той самий масив, причому перший елемент стає останнім, а останній – першим. Інакше кажучи, порядок елементів у масиві стає повною протилежністю вихідного.

Спробуйте його в дії

Синтаксис

reverse()

Повернене значення

Посилання на вихідний масив, уже розвернутий. Зверніть увагу на те, що масив розвертається на місці, і копіювання не виконується.

Опис

Метод reverse() транспонує елементи свого об'єкта масиву на місці, видозмінюючи цей масив та повертаючи посилання на нього.

Метод reverse() зберігає порожні комірки. Коли вихідний масив є розрідженим, то нові індекси, що відповідають порожнім коміркам, видаляються і також стають порожніми комірками.

Метод reverse() є узагальненим. Він лишень очікує, що значення this має властивість length і властивості з цілочисловими ключами. Хоч рядки також є подібними до масивів, цей метод не можна до них застосовувати, адже рядки – незмінювані.

Приклади

Розворот елементів у масиві

Наступний приклад створює масив items, що містить три елементи, а тоді розвертає цей масив. Виклик reverse() повертає посилання на розвернутий масив items.

const items = [1, 2, 3];
console.log(items); // [1, 2, 3]

items.reverse();
console.log(items); // [3, 2, 1]

Метод reverse() повертає посилання на той самий масив

Метод reverse() повертає посилання на вихідний масив, тож змінювання поверненого масиву внесе зміни також до вихідного масиву.

const numbers = [3, 2, 4, 1, 5];
const reversed = numbers.reverse();
// І numbers, і reversed – мають обернений порядок [5, 1, 4, 2, 3]
reversed[0] = 5;
console.log(numbers[0]); // 5

Коли треба, щоб reverse() не вніс зміни до вихідного масиву, а повернув поверхнево скопійований масив, подібно до інших методів (наприклад, map()), можна виконати поверхневе копіювання до виклику reverse(), за допомогою синтаксису розгортання або Array.from().

const numbers = [3, 2, 4, 1, 5];
// [...numbers] утворює поверхневу копію, тож reverse() не вносить змін до вихідного масиву
const reverted = [...numbers].reverse();
reverted[0] = 5;
console.log(numbers[0]); // 3

Застосування reverse() на розріджених масивах

Розріджені масиви залишаються розрідженими навіть після виклику reverse(). Порожні комірки копіюються в нові відповідні їм індекси у вигляді нових порожніх комірок.

console.log([1, , 3].reverse()); // [3, порожньо, 1]
console.log([1, , 3, 4].reverse()); // [4, 3, порожньо, 1]

Виклик reverse() на об'єктах-немасивах

Метод reverse() зчитує властивість length із this. Потім він обробляє кожний індекс від 0 до length / 2 і міняє місцями пари відповідних індексів з обох кінців, видаляючи властивості, якщо це необхідно.

const arrayLike = {
  length: 3,
  unrelated: "foo",
  2: 4,
};
console.log(Array.prototype.reverse.call(arrayLike));
// { '0': 4, length: 3, unrelated: 'foo' }
// Індекс '2' видаляється, бо індексу '0' спершу не було

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

Сумісність із браузерами

desktop mobile server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
reverse
Chrome Full support 1
Edge Full support 12
Firefox Full support 1
Internet Explorer Full support 5.5
Opera Full support 4
Safari Full support 1
WebView Android Full support 1
Chrome Android Full support 18
Firefox for Android Full support 4
Opera Android Full support 10.1
Safari on iOS Full support 1
Samsung Internet Full support 1.0
Deno Full support 1.0
Node.js Full support 0.10.0

Дивіться також