Question 18
Question
How would you implement a custom deepCopy()
method?
Answer
Using JSON.parse(JSON.stringify())
is a common technique for creating deep copies of objects in JavaScript. Here's a breakdown of how to implement it:
Explanation:
JSON.stringify(obj)
: This method takes your object (obj
) and converts it into a JSON string representation. This process essentially flattens nested objects into key-value pairs within the string.JSON.parse(...)
: This method then takes the JSON string and parses it back into a JavaScript object. Because of howJSON.stringify
handles objects, this creates a completely new copy with its own references. Changes made to the copied object won't affect the original.
Example:
Important Notes:
Circular References:
JSON.stringify()
andJSON.parse()
will handle simple circular references (objects referencing each other). However, for complex nested cycles, you might need a more robust solution.Non-Serializables: Be mindful that not all data types are serializable by JSON. For example, functions, custom objects with non-serializable properties, or large binary data might cause issues.
Last updated