DEV Community

Discussion on: How to Deep Clone an Array in JavaScript

Collapse
 
tailcall profile image
Maria Zaitseva

One has to be really careful with JSON solution! It doesn't work with values not compatible with JSON. Examples:

function nestedCopy(array) {
    return JSON.parse(JSON.stringify(array));
}

// undefineds are converted to nulls

nestedCopy([1, undefined, 2]) // -> [1, null, 2]

// DOM nodes are converted to empty objects

nestedCopy([document.body, document.querySelector('p')]) // -> [{}, {}]

// JS dates are converted to strings

nestedCopy([new Date()]) // -> ["2019-03-04T10:09:00.419Z"]
Enter fullscreen mode Exit fullscreen mode

Consider using a library function if you have to work with such data.

Collapse
 
vipinkumarsn4 profile image
Vipin Saini

Wow.
This is really cool!
You have added a gem to the post!
Thanks!

Collapse
 
samanthaming profile image
Samantha Ming

Yes! Very good point, let me add that to the code notes! Thanks for noting that 👏