变量在操作新实例后失去原始值



我是 Node.js 的新手,并且在操作副本后我的变量丢失其原始值时遇到了问题。

例如:

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);

相关内容

最新更新