Array.prototype.toReversed()

Baseline 2023
新推出

自 2023 年 7 月以来,此功能可在最新的设备和浏览器版本上运行。此功能可能不适用于旧设备或浏览器。

toReversed() 方法是 Array 实例上与 reverse() 方法相对应的复制方法。它会返回一个元素顺序颠倒的新数组。

语法

js
toReversed()

参数

无。

返回值

包含元素顺序颠倒的新数组。

描述

toReversed() 方法会颠倒调用数组对象的元素顺序,并返回一个新数组。

稀疏数组上使用时,toReversed() 方法会将空位视为具有 undefined 值进行迭代。

toReversed() 方法是通用的。它只要求 this 值具有 length 属性和整数键属性。

示例

颠倒数组中的元素顺序

以下示例创建了一个名为 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()

toReversed() 方法会读取 thislength 属性。然后,它会按降序访问 length - 10 之间的所有整数键属性,并将当前属性的值添加到要返回的数组末尾。

js
const arrayLike = {
  length: 3,
  unrelated: "foo",
  2: 4,
};
console.log(Array.prototype.toReversed.call(arrayLike));
// [4, undefined, undefined]
// The '0' and '1' indices are not present so they become undefined

规范

规范
ECMAScript® 2026 语言规范
# sec-array.prototype.toreversed

浏览器兼容性

另见