0

所以,这并不像我期望的那样工作:

var x = [1,2,3];
var y = x;
y.push(4);
console.log(x);

我以为它会记录 [1,2,3] 但它会记录 [1,2,3,4]!我需要的是有一个函数,它只为 y 添加一个值,而不是 x - 我希望能够弄乱 [1,2,3] 数组,但也能够“回到它”并且取消所做的更改。我希望这有足够的意义......

4

1 回答 1

3
var x = [1,2,3];
var y = x.slice();
y.push(4);
console.log(x);  // Outputs 1,2,3

Usingslice是获取数组副本的最简单方法。

请记住,在 Javascript 中xy是对数组的引用。在这方面,Javascript 的行为不同于例如 PHP。

所以当你这样做时,y.push(4)你将一个元素推入由x.

于 2013-02-17T19:11:58.193 回答