This question already has answers here:
Copy array by value
(35个答案)
2年前关闭。
有什么办法可以使变量深拷贝? (不是对象)。例:
在我的示例中,不应更改
我知道
要注意,我不能使用任何库,我已经找到了建议使用jQuery之类的答案,但是我不能使用它。
用另一个示例进行编辑后:
(35个答案)
2年前关闭。
有什么办法可以使变量深拷贝? (不是对象)。例:
var a = ["String", "string"];
var b = a;
b.splice(1, 1);
b = a;
在我的示例中,不应更改
a
,我想稍后使用它来恢复b
。 (如上面的代码所示)。我知道
=
只是创建了一个新引用,因此出现了一个问题:是否还有其他方法可以使深层副本代替引用?要注意,我不能使用任何库,我已经找到了建议使用jQuery之类的答案,但是我不能使用它。
最佳答案
您是否测试过代码? Numbers
和其他原语被复制,未引用。
var a = 1;
var b = a;
console.log(`a is ${a}`);
console.log(`b is ${b}`);
b++;
console.log(`a is ${a} (no change)`);
console.log(`b is ${b}`);
用另一个示例进行编辑后:
var a = ["foo", "bar"];
var b = a.slice(); // array copy
console.log(`a is ${a}`);
console.log(`b is ${b}`);
b.splice(1, 1);
console.log(`a is ${a} (not changed)`);
console.log(`b is ${b}`);
b = a;
关于javascript - JS制作数组的深拷贝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49235387/
10-11 23:45