Spec-Zone.ru › JavaScript

Array.prototype.reverse()

Базовый уровень Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

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

Чтобы изменить порядок элементов в массиве, не изменяя исходный массив, используйте toReversed().

Попробуйте

const array = ["one", "two", "three"];
console.log("array:", array);
// Expected output: "array:" Array ["one", "two", "three"]

const reversed = array.reverse();
console.log("reversed:", reversed);
// Expected output: "reversed:" Array ["three", "two", "one"]

// Careful: reverse is destructive -- it changes the original array.
console.log("array:", array);
// Expected output: "array:" Array ["three", "two", "one"]

Синтаксис

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 and reversed are both in reversed order [5, 1, 4, 2, 3]
reversed[0] = 5;
console.log(numbers[0]); // 5

Если вы хотите, чтобы reverse() не изменял исходный массив, а возвращал поверхностно скопированный массив, как это делают другие методы массива (например, map()), используйте метод toReversed(). В качестве альтернативы вы можете выполнить поверхностное копирование перед вызовом reverse(), используя синтаксис spread или Array.from().

const numbers = [3, 2, 4, 1, 5];
// [...numbers] creates a shallow copy, so reverse() does not mutate the original
const reverted = [...numbers].reverse();
reverted[0] = 5;
console.log(numbers[0]); // 3

Использование reverse() на разреженных массивах

Разреженные массивы остаются разреженными после вызова reverse(). Пустые слоты копируются в соответствующие новые индексы как пустые слоты.

console.log([1, , 3].reverse()); // [3, empty, 1]
console.log([1, , 3, 4].reverse()); // [4, 3, empty, 1]

Вызов reverse() для объектов, не являющихся массивами

Метод reverse() считывает свойство length объекта this. Затем он перебирает каждое свойство с целочисленным ключом между 0 и length / 2 и меняет местами два соответствующих индекса на обоих концах, удаляя любое целевое свойство, для которого исходное свойство не существовало.

const arrayLike = {
  length: 3,
  unrelated: "foo",
  2: 4,
  3: 33, // ignored by reverse() since length is 3
};
console.log(Array.prototype.reverse.call(arrayLike));
// { 0: 4, 3: 33, length: 3, unrelated: 'foo' }
// The index 2 is deleted because there was no index 0 present originally
// The index 3 is unchanged since the length is 3

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

Спецификация
ECMAScript® 2027 Language Specification
# sec-array.prototype.reverse

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

Настольные компьютеры Мобильные Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
reverse
1
12
1
4
1
18
4
10.1
1
1.0
1
1
1.0.0
1.0
0.10.0

См. также

  • Polyfill метода Array.prototype.reverse в core-js
  • es-shims polyfill метода Array.prototype.reverse
  • Руководство по индексированным коллекциям
  • Array
  • Array.prototype.join()
  • Array.prototype.sort()
  • Array.prototype.toReversed()
  • TypedArray.prototype.reverse()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API