gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:07:52 25 4
gpt4 key购买 nike

我是 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中的数组是一个对象,对象总是通过引用传递或赋值。

你可以在这里做的是 hack

var array2 = array1.slice()

var array2 = [].concat(array1);

关于javascript - 操作新实例后变量失去原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com