--- title: Deepcopy id: 596a8888ab7c01048de257d5 challengeType: 5 --- ## Description
Task:

Write a function that returns a deep copy of a given object.

The copy must not be the same object that was given.

This task will not test for:

Objects with properties that are functions Date objects or object with properties that are Date objects RegEx or object with properties that are RegEx objects Prototype copying
## Instructions
## Tests
```yml tests: - text: deepcopy should be a function. testString: 'assert(typeof deepcopy === "function", "deepcopy should be a function.");' - text: 'deepcopy({test: "test"}) should return an object.' testString: 'assert(typeof deepcopy(obj1) === "object", "deepcopy({test: "test"}) should return an object.");' - text: Should not return the same object that was provided. testString: 'assert(deepcopy(obj2) != obj2, "Should not return the same object that was provided.");' - text: 'When passed an object containing an array, should return a deep copy of the object.' testString: 'assert.deepEqual(deepcopy(obj2), obj2, "When passed an object containing an array, should return a deep copy of the object.");' - text: 'When passed an object containing another object, should return a deep copy of the object.' testString: 'assert.deepEqual(deepcopy(obj3), obj3, "When passed an object containing another object, should return a deep copy of the object.");' ```
## Challenge Seed
```js function deepcopy (obj) { // Good luck! return true; } ```
### After Test
```js console.info('after the test'); ```
## Solution
```js function deepcopy(obj) { return JSON.parse(JSON.stringify(obj)); } ```