Avatar ·

如何在JavaScript中创建数组的副本,而不是引用?

大家好!我是JavaScript新手,遇到了一个无法解决的问题。当我尝试复制数组时,对新数组的修改会影响原数组。例如: ```javascript let original = [1, 2, 3]; let copy = original; copy.push(4); console.log(original); // [1, 2, 3, 4] — 我不希望original被改变! ``` 我明白`copy = original`创建的不是副本,而是对同一数组的引用。但如何让`copy`完全独立呢?我试过`copy = original.slice()`,这对简单数字有效。但当我有嵌套数组或对象时,修改仍然会影响原数组: ```javascript let nested = [[1, 2], [3, 4]]; let copyNested = nested.slice(); copyNested[0].push(5); console.log(nested[0]); // [1, 2, 5] — 又改变了! ``` 问题出在哪里?如何制作“深拷贝”,使得对副本的任何修改都不会影响原数组?最好针对不同情况给出示例:简单数组、对象数组等。