reverse() разворачивает порядок элементов массива в обратную сторону.
Первый элемент становится последним, второй предпоследним и так далее.
Синтаксис
array.reverse()
Метод не принимает аргументов.
Что делает reverse()
После вызова reverse() элементы массива меняются местами в обратном порядке.
const numbers = [1, 2, 3, 4];
numbers.reverse();
console.log(numbers); // [4, 3, 2, 1]
reverse() меняет исходный массив
Это главный момент, который важно запомнить.
reverse() работает прямо с исходным массивом, а не создаёт новый.
const letters = ["a", "b", "c"];
letters.reverse();
console.log(letters); // ["c", "b", "a"]
Что возвращает reverse()
reverse() возвращает сам изменённый массив.
const numbers = [1, 2, 3];
const result = numbers.reverse();
console.log(result); // [3, 2, 1]
console.log(numbers); // [3, 2, 1]
Но это не новый массив, а тот же самый.
Порядок просто меняется местами
Метод не сортирует значения и ничего не сравнивает.
Он просто меняет порядок элементов на обратный.
const items = ["first", "second", "third"];
items.reverse();
console.log(items); // ["third", "second", "first"]
reverse() и toReversed()
Эти методы похожи, но работают по-разному.
const numbers = [1, 2, 3];
const result = numbers.toReversed();
console.log(numbers); // [1, 2, 3]
console.log(result); // [3, 2, 1]
reverse() меняет исходный массив.
toReversed() возвращает новый массив.
Как сохранить исходный массив
Если нужно получить перевёрнутую копию без изменения исходного массива, обычно сначала делают копию:
const numbers = [1, 2, 3];
const reversed = [...numbers].reverse();
console.log(numbers); // [1, 2, 3]
console.log(reversed); // [3, 2, 1]
Или используют toReversed().
Массив объектов
reverse() меняет только порядок элементов.
Сами объекты внутри массива не копируются.
const users = [
{ name: "Anna" },
{ name: "Ivan" },
];
const result = users.reverse();
console.log(result);
// [{ name: "Ivan" }, { name: "Anna" }]
Если потом изменить объект, это будет тот же самый объект, просто уже на другой позиции.
Пустые слоты
reverse() сохраняет пустые слоты массива, но переносит их на противоположные позиции.
const arr = [1, , 3];
arr.reverse();
console.log(arr); // [3, empty, 1]
Это может выглядеть неожиданно, если в массиве есть “дырки”.
reverse() и sort()
Иногда эти методы используют рядом, но задача у них разная.
const numbers = [3, 1, 2];
numbers.sort();
numbers.reverse();
console.log(numbers); // [3, 2, 1]
sort() упорядочивает элементы.
reverse() просто меняет текущий порядок на обратный.
Когда это полезно
reverse() удобно использовать, когда:
- нужно быстро перевернуть порядок элементов
- нужно показать массив с конца
- изменение исходного массива допустимо
Пример:
const history = ["step-1", "step-2", "step-3"];
history.reverse();
console.log(history); // ["step-3", "step-2", "step-1"]
Частые ошибки
Думать, что reverse() создаёт новый массив
const numbers = [1, 2, 3];
numbers.reverse();
console.log(numbers); // [3, 2, 1]
Метод меняет исходный массив.
Путать reverse() и sort()
const numbers = [3, 1, 2];
numbers.reverse();
console.log(numbers); // [2, 1, 3]
reverse() не сортирует значения, а просто переворачивает текущий порядок.
Считать, что reverse() делает глубокую копию
const users = [{ name: "Anna" }, { name: "Ivan" }];
const result = users.reverse();
Метод только меняет порядок элементов, но не создаёт независимые копии объектов.
Быстрая памятка
reverse()разворачивает массив в обратном порядке- метод меняет исходный массив
reverse()возвращает тот же самый массивreverse()не сортирует значения, а просто меняет порядок- если нужен новый массив, можно использовать
toReversed()или копию через spread
Коротко
reverse() - это простой способ перевернуть массив в обратном порядке. Главное, что стоит запомнить: метод меняет исходный массив и возвращает его же, а не новую копию.