Javascript JS对数组进行深度复制
有什么方法可以制作一个变量的深度副本吗?(不是反对)。例如:Javascript JS对数组进行深度复制,javascript,arrays,deep-copy,Javascript,Arrays,Deep Copy,有什么方法可以制作一个变量的深度副本吗?(不是反对)。例如: var a = ["String", "string"]; var b = a; b.splice(1, 1); b = a; 在我的示例中,a不应该更改,我希望稍后使用它来恢复b。(如上面代码所示) 我知道,=只是做了一个新的引用,因此问题是:有没有其他方法可以做一个深度复制而不是引用 需要注意的是,我不能使用任何库,我找到了建议使用jQuery之类的答案,但我不能使用它。您测试过代码吗数字和其他原语是复制的,而不是引用的
var a = ["String", "string"];
var b = a;
b.splice(1, 1);
b = a;
在我的示例中,a
不应该更改,我希望稍后使用它来恢复b
。(如上面代码所示)
我知道,=
只是做了一个新的引用,因此问题是:有没有其他方法可以做一个深度复制而不是引用
需要注意的是,我不能使用任何库,我找到了建议使用jQuery之类的答案,但我不能使用它。您测试过代码吗<代码>数字和其他原语是复制的,而不是引用的
var a=1;
var b=a;
log(`a是${a}`);
log(`b是${b}`);
b++;
log(`a是${a}(无更改)`);
log(`b是${b}`)代码>您测试过代码吗<代码>数字
和其他原语是复制的,而不是引用的
var a=1;
var b=a;
log(`a是${a}`);
log(`b是${b}`);
b++;
log(`a是${a}(无更改)`);
log(`b是${b}`)代码>这是我的一个糟糕的、非常糟糕的例子,在我的例子中,我处理的是字符串数组tested@Chaost数组不是基元而是对象。@字符串数组(字符串数组?)只是一个对象,所以请参阅深度复制数组。@AurelBílýoh没有注意到var b=a代码>按此行尝试:var b=Object.assign([],a);这是我的一个糟糕的、非常糟糕的例子,在我的例子中,我处理的是字符串数组tested@Chaost数组不是基元而是对象。@字符串数组(字符串数组?)只是一个对象,所以请参阅深度复制数组。@AurelBílýoh没有注意到var b=a代码>按此行尝试:var b=Object.assign([],a);只有javascript中的对象(数组也是对象)才能相互引用。所有其他变量类型都是新变量。@RickardElimää抱歉,这个示例非常糟糕,现在已经修复了它只有javascript中的对象(数组也是对象)可以相互引用。所有其他变量类型都是新变量。@RickardElimää抱歉,该示例非常糟糕,现已修复