数组按引用/按值设置

时间:2013-09-27 16:12:08

标签: javascript arrays

注意:我认为这个问题之前已被问过一百万次,但我不知道该搜索什么。 问题很简单。 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/

1 个答案:

答案 0 :(得分:5)

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

b = a.slice();

javascripts slice()方法返回一个基于给定参数切片的新数组,如果没有参数调用,它将返回整个数组的新浅层副本。