Array.prototype.toReversed()

Baseline 2023

Newly available

Since July 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Метод toReversed() возвращает новый массив с расположенными в обратном порядке элементами. Является копирующей версией метода reverse().

Синтаксис

js
toReversed()

Параметры

Нет.

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

Новый массив, содержащий элементы в обратном порядке.

Описание

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

Когда мы используем метод toReversed() на массиве с пропущенными элементами, метод toReversed() проитерирует пустые элементы так, как если бы они имели значение undefined.

Примеры

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

В данном примере создаётся массив items, содержащий три элемента. Затем создаётся новый массив, в котором элементы расположены в обратном порядке относительно массива items. Массив items остаётся без изменений.

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

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

Использование toReversed() на массивах с пропущенными элементами

В результате вызова toReversed() никогда не будет создан массив с пропущенными элементами. Пустые ячейки в исходном массиве заменяются на undefined в возвращаемом массиве.

js
console.log([1, , 3].toReversed()); // [3, undefined, 1]
console.log([1, , 3, 4].toReversed()); // [4, 3, undefined, 1]

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

В данном примере создаётся объект arrayLike, который не является обычным массивом, но обладает свойством length и целочисленными ключами. Поскольку arrayLike имеет свойство length равное 3, метод toReversed() создает новый массив длиной 3. Однако в arrayLike отсутствуют свойства с ключами '0' и '1'. Поэтому в возвращаемом массиве соответствующие элементы становятся undefined.

js
const arrayLike = {
  length: 3,
  unrelated: "foo",
  2: 4,
};
console.log(Array.prototype.toReversed.call(arrayLike));
// [4, undefined, undefined]
// Индексы '0' и '1' отсутствуют, поэтому они становятся undefined

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

Specification
ECMAScript Language Specification
# sec-array.prototype.toreversed

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

BCD tables only load in the browser

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