我正在尝试在打字稿中反转数组。这是原始数组的样子:
但是当我在数组上调用reverse()
时,它没有改变:
recommendations
是一个数组数组,声明如下:
recommendations: any;
并实例化:
me.recommendations = [[]];
有谁能告诉我为什么数组没有被颠倒以及如何解决这个问题?
由于
答案 0 :(得分:7)
阵列已被颠倒过来。你已经在调试器中欺骗了自己。
reverse
就地反转数组并且返回对数组的引用。换句话说,
> var x = [1, 2, 3];
> var y = x.reverse();
> x
[3, 2, 1]
> y
[3, 2, 1]
> x === y
true
答案 1 :(得分:5)
问题是[] .reverse()没有按预期运行。
reverse
更改了数组本身的值,因此数组正在被反转,只是在发生这种情况后你才检查变量whatever
和yup
。
因此数组本身 反转,你刚刚对该对象进行了2次引用。