我有以下代码:



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/

10-11 23:00