Javascript .splice()和.push()错误

时间:2015-08-06 09:53:05

标签: javascript arrays

我有一个数组array1,我将它的副本存储在另一个变量say array2中。 现在,当我尝试将值推送到array1时,即使在将值推送到array1之前分配了array2,该值也会被推送到array2中。 这也发生在.splice()方法中。

var array1 = [1,2,3];
var array2 = array1;
array1.push(4);
alert(array1);
alert(array2);

fiddle

2 个答案:

答案 0 :(得分:1)

你必须像这样克隆你的第一个数组:

var array2 = array1.slice(0);

更新了fiddle

答案 1 :(得分:0)

JavaScript具有原始类型和引用类型.Array是一种引用类型。 Array2获取引用,因此array1的修改会影响array2。您也可以使用此代码:

var array1 = [1,2,3];
var array2 = array1.concat();
array2.push(4);
alert(array1);
alert(array2);