ZetCode

JavaScript toReversed 方法

最后修改于 2025 年 4 月 4 日

在本文中,我们将展示如何使用 JavaScript 中的 toReversed 方法反转数组。该方法是在 ECMAScript 2023 中引入的。

数组反转

数组反转是更改数组中元素顺序的操作。toReversed 方法返回一个新数组,其中的元素按相反的顺序排列。与 reverse 方法不同,它不会修改原始数组。

当您需要处理反向数据同时保留原始数组时,此方法非常有用。toReversed 方法是 JavaScript 中新的非变异数组方法系列的一部分。

该方法适用于任何具有 length 属性和索引元素的类似数组的对象。它在反转之前创建数组的浅拷贝。原始数组在操作后保持不变。

基本的 toReversed 示例

以下示例演示了 toReversed 方法的基本用法。

main.js
const numbers = [1, 2, 3, 4, 5];
const reversedNumbers = numbers.toReversed();

console.log(numbers);        // Original array unchanged
console.log(reversedNumbers); // New reversed array

我们创建一个数组并使用 toReversed 反转它。原始数组保持不变。该方法返回一个新数组,其中的元素按相反的顺序排列。

$ node main.js
[ 1, 2, 3, 4, 5 ]
[ 5, 4, 3, 2, 1 ]

反转字符串数组

toReversed 方法适用于包含任何数据类型的数组。

main.js
const fruits = ['apple', 'banana', 'cherry', 'date'];
const reversedFruits = fruits.toReversed();

console.log(fruits);
console.log(reversedFruits);

我们反转一个字符串数组。原始数组保持原样,同时我们获得一个新数组,其中的元素按相反的顺序排列。这适用于任何数组元素类型。

$ node main.js
[ 'apple', 'banana', 'cherry', 'date' ]
[ 'date', 'cherry', 'banana', 'apple' ]

比较 toReversed 与 reverse

此示例显示了 toReversed 和变异的 reverse 方法之间的区别。

main.js
const original1 = [1, 2, 3];
const result1 = original1.toReversed();

const original2 = [1, 2, 3];
const result2 = original2.reverse();

console.log(original1, result1);
console.log(original2, result2);

我们演示了这两种方法之间的关键区别。toReversed 保留了原始数组,而 reverse 在原位修改了它。这两种方法都会产生相同的反向输出。

$ node main.js
[ 1, 2, 3 ] [ 3, 2, 1 ]
[ 3, 2, 1 ] [ 3, 2, 1 ]

反转稀疏数组

toReversed 方法处理稀疏数组(带有空洞的数组)。

main.js
const sparseArray = [1, , 3, , 5];
const reversedSparse = sparseArray.toReversed();

console.log(sparseArray);
console.log(reversedSparse);

我们创建一个带有空槽的稀疏数组并将其反转。空槽保留在反向数组中。该方法在结果中保持数组的稀疏模式。

$ node main.js
[ 1, <1 empty item>, 3, <1 empty item>, 5 ]
[ 5, <1 empty item>, 3, <1 empty item>, 1 ]

将 toReversed 与类似数组的对象一起使用

toReversed 方法可以在类似数组的对象上调用。

main.js
const arrayLike = {
  length: 3,
  0: 'a',
  1: 'b',
  2: 'c'
};

const reversed = Array.prototype.toReversed.call(arrayLike);
console.log(reversed);

我们演示了如何将 toReversed 与类似数组的对象一起使用。该方法使用 Array.prototype 调用,并适用于任何具有 length 和索引属性的对象。

$ node main.js
[ 'c', 'b', 'a' ]

来源

数组 toReversed - 语言参考

在本文中,我们演示了如何使用 toReversed() 方法在 JavaScript 中反转数组而不进行修改。

作者

我叫 Jan Bodnar,是一位热情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。迄今为止,我撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出 所有 JS 数组函数。