新的实例被操作后,variables会丢失原始值
我是Node.js的新手,在操作副本后,我的variables失去原始值时遇到问题。
例如:
var array1 = [1, 2, 3]; var array2 = array1; array2[0] = null;
如果我然后检查这些值, array2
是正确的,但是array1
与array2
具有相同的设置,即使我没有触及array1
。
我也看到它也发生在这里。
function func(inputArray) { var outputArray = inputArray; outputArray[0] = null; return outputArray; } var array3 = [4,5,6,7]; var array4 = func(array3);
在这里, array3
被覆盖到array4
是什么。
我如何解决这个问题?
做完这一行后
var array2 = array1;
array2和array1指向相同的数组。 1数组中的更改将自动更新其他数据。由于js中的数组是一个对象,对象总是被传递或被引用分配。
你可以在这里做什么是一个黑客
var array2 = array1.slice()
要么
var array2 = [].concat(array1);