--- 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)); } ```