数组反转,保持原有顺序不变

3
我正在尝试在TypeScript中反转一个数组。以下是原始数组的样子: enter image description here 但是当我调用数组上的reverse()方法时,它并没有改变: enter image description here recommendations 是一个数组的数组,声明如下:
recommendations: any;

并实例化:

me.recommendations = [[]];

有人能告诉我为什么数组没有被反转以及如何解决这个问题吗?

谢谢


console.log([1,2,3].reverse()) 在相同的上下文中表示什么?没关系,看下面 :) - Mardoxx
2个回答

7
数组已经被反转了。你在调试器中自己给骗了。 reverse 方法会就地反转数组,同时返回对该数组的引用。换句话说,
> var x = [1, 2, 3];
> var y = x.reverse();
> x
    [3, 2, 1]
> y
    [3, 2, 1]
> x === y
    true

5
问题在于[].reverse()的表现不符合你的期望。 reverse改变了数组本身的值,所以数组被倒转了,只是在这个操作发生之后你检查了变量whateveryup。 所以数组本身已经被倒转了,而你只是对该对象进行了两次引用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接