在 Javascript 中反转对象数组

Lio*_*ioM 4 javascript arrays object

正如标题所说,我想反转由 Javascript 中的对象组成的数组。

例子 : var x = [{"score":1},{"score":2},{"score":3}]

为此,我使用了 .reverse() 方法。

现在,假设我写了这段代码

console.log(x);
x.reverse();
console.log(x);
Run Code Online (Sandbox Code Playgroud)

我希望控制台以原始顺序显示数组,然后以相反的顺序显示。但是,它确实以相反的顺序显示了两个数组。

怎么来的 ?

Moe*_*deh 10

最好的方法是:

var y = [...x].reverse();

var x = [{"score":1},{"score":2},{"score":3}]
console.log(x);
var y = [...x].reverse();
console.log(y);
Run Code Online (Sandbox Code Playgroud)


Lyn*_*242 6

console.log()考虑一个可变对象在它被打印到屏幕上之前是否已经改变。由于您的OUTPUT -> CHANGE -> OUTPUT过程几乎是准同步的,因此两个输出是相同的。您必须使用 x 的副本才能获得所需的提示。

试试这个方法:

// copy x
y = Object.assign({}, x);
console.log(y);

x.reverse();
console.log(x);  
Run Code Online (Sandbox Code Playgroud)