From 1f7377e7d0955d9600a9ce4a8ccdf9ec8d51c98c Mon Sep 17 00:00:00 2001 From: Oscar Date: Fri, 11 May 2018 10:23:59 +0100 Subject: [PATCH] deepClone: Fixed indents & failing tests --- snippets/deepClone.md | 12 +++++++----- test/deepClone/deepClone.js | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/snippets/deepClone.md b/snippets/deepClone.md index e7707918f..de791ee7e 100644 --- a/snippets/deepClone.md +++ b/snippets/deepClone.md @@ -8,12 +8,13 @@ Use `Object.keys()` and `Array.forEach()` to determine which key-value pairs nee ```js + const deepClone = obj => { - let clone = Object.assign({}, obj); - Object.keys(clone).forEach( - key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key]) - ); - return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : obj; + let clone = Object.assign({}, obj); + Object.keys(clone).forEach( + key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key]) + ); + return Array.isArray(obj) ? Array.from(clone) : clone; }; ``` @@ -21,6 +22,7 @@ const deepClone = obj => { + const a = { foo: 'bar', obj: { a: 1, b: 2 } }; const b = deepClone(a); // a !== b, a.obj !== b.obj ``` diff --git a/test/deepClone/deepClone.js b/test/deepClone/deepClone.js index f613e5660..62e3364ff 100644 --- a/test/deepClone/deepClone.js +++ b/test/deepClone/deepClone.js @@ -3,6 +3,6 @@ let clone = Object.assign({}, obj); Object.keys(clone).forEach( key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key]) ); -return Array.isArray(obj) ? (clone.length = obj.length) && Array.from(clone) : obj; +return Array.isArray(obj) ? Array.from(clone) : clone; }; -module.exports = deepClone; \ No newline at end of file +module.exports = deepClone;