2

注意:我假设这个问题之前已经被问过一百万次,但我不知道要搜索什么。问题很简单。javascript 中的数组似乎是通过引用设置的。我如何按值设置它。意思是,即使我清空数组 a,我希望数组 b 是 a 的副本,即,我想alert(b)提醒 ['1','2','3']

var a = ['1','2','3'];
var b = [];
b = a;
a.length = 0;
alert(b);

这是一个 jsfiddle http://jsfiddle.net/e5mQM/

4

1 回答 1

5

是的,设置a = b;将使两个变量都指向同一个数组/对象,所以你必须复制数组而不是仅仅引用它:

b = a.slice();

javascriptsslice()方法返回一个基于给定参数切片的新数组,如果不带参数调用它将返回整个数组的新浅表副本。

于 2013-09-27T16:12:54.957 回答