新的实例被操作后,variables会丢失原始值

我是Node.js的新手,在操作副本后,我的variables失去原始值时遇到问题。

例如:

var array1 = [1, 2, 3]; var array2 = array1; array2[0] = null; 

如果我然后检查这些值, array2是正确的,但是array1array2具有相同的设置,即使我没有触及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);