此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Array.prototype.toReversed()

基线 广泛可用

自 2023年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

>

Array 实例的 toReversed() 方法是 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]
// '0' 和 '1' 两个索引不存在,所以它们会变成 undefined

规范

规范
ECMAScript® 2027 Language Specification>
# sec-array.prototype.toreversed>

浏览器兼容性

参见