Avatar ·

Como criar uma cópia de um array em JavaScript, e não uma referência a ele?

Olá a todos! Sou novo em JavaScript e me deparei com um problema que não consigo resolver. Quando tento copiar um array, as alterações no novo array afetam o original. Aqui está um exemplo: ```javascript let original = [1, 2, 3]; let copy = original; copy.push(4); console.log(original); // [1, 2, 3, 4] — eu não quero que original mude! ``` Eu entendo que `copy = original` cria não uma cópia, mas uma referência ao mesmo array. Mas como fazer para que `copy` seja completamente independente? Tentei `copy = original.slice()`, e funcionou para números simples. Mas quando tenho arrays aninhados ou objetos, as alterações ainda afetam o original: ```javascript let nested = [[1, 2], [3, 4]]; let copyNested = nested.slice(); copyNested[0].push(5); console.log(nested[0]); // [1, 2, 5] — mudou de novo! ``` Qual é o problema? Como fazer uma "deep copy" para que quaisquer alterações na cópia não afetem o original? De preferência com exemplos para diferentes casos: arrays simples, arrays de objetos, etc.