我有以下代码:
let a = {x: "x"};
let b = {b: "b"};
let versions = [a, b];
let copyOfVersions = Array.from(versions);
let test = ["test"];
copyOfVersions[0].versions = Array.from(test);
console.log(versions[0].versions);
为什么
versions
表值也发生了变化?谢谢!
最佳答案
是的,您使用Array.from创建了一个新的数组实例。因此,版本和copyOfVersions是两个不同的对象,但是它们都包含对相同对象的引用列表。因此,这意味着当您说copyOfVersions [0]和版本[0]时,您基本上是在访问同一对象a。然后,当您使用.versions时,您将添加一个新字段。最后,只有对象a被更改,这就是您看到的打印输出。
关于javascript - 原始数组值被修改,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44702771/