Travis build: 2050

This commit is contained in:
30secondsofcode
2018-05-11 09:46:16 +00:00
parent 7c2b5ce7bd
commit 50e3be73af
3 changed files with 2 additions and 8 deletions

View File

@ -6123,7 +6123,7 @@ const deepClone = obj => {
Object.keys(clone).forEach( Object.keys(clone).forEach(
key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key]) key => (clone[key] = typeof obj[key] === 'object' ? deepClone(obj[key]) : obj[key])
); );
return clone; return Array.isArray(obj) ? Array.from(clone) : clone;
}; };
``` ```

View File

@ -101,7 +101,7 @@
Object<span class="token punctuation">.</span><span class="token function">keys</span><span class="token punctuation">(</span>clone<span class="token punctuation">).</span><span class="token function">forEach</span><span class="token punctuation">(</span> Object<span class="token punctuation">.</span><span class="token function">keys</span><span class="token punctuation">(</span>clone<span class="token punctuation">).</span><span class="token function">forEach</span><span class="token punctuation">(</span>
key <span class="token operator">=></span> <span class="token punctuation">(</span>clone<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">typeof</span> obj<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">===</span> <span class="token string">'object'</span> <span class="token operator">?</span> <span class="token function">deepClone</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>key<span class="token punctuation">]) :</span> obj<span class="token punctuation">[</span>key<span class="token punctuation">]) key <span class="token operator">=></span> <span class="token punctuation">(</span>clone<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">typeof</span> obj<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">===</span> <span class="token string">'object'</span> <span class="token operator">?</span> <span class="token function">deepClone</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>key<span class="token punctuation">]) :</span> obj<span class="token punctuation">[</span>key<span class="token punctuation">])
);</span> );</span>
<span class="token keyword">return</span> clone<span class="token punctuation">; <span class="token keyword">return</span> Array<span class="token punctuation">.</span><span class="token function">isArray</span><span class="token punctuation">(</span>obj<span class="token punctuation">)</span> <span class="token operator">?</span> Array<span class="token punctuation">.</span><span class="token keyword">from</span><span class="token punctuation">(</span>clone<span class="token punctuation">) :</span> clone<span class="token punctuation">;
};</span> };</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> a <span class="token operator">=</span> <span class="token punctuation">{</span> foo<span class="token punctuation">:</span> <span class="token string">'bar'</span><span class="token punctuation">,</span> obj<span class="token punctuation">: {</span> a<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">,</span> b<span class="token punctuation">:</span> <span class="token number">2</span> <span class="token punctuation">} };</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> a <span class="token operator">=</span> <span class="token punctuation">{</span> foo<span class="token punctuation">:</span> <span class="token string">'bar'</span><span class="token punctuation">,</span> obj<span class="token punctuation">: {</span> a<span class="token punctuation">:</span> <span class="token number">1</span><span class="token punctuation">,</span> b<span class="token punctuation">:</span> <span class="token number">2</span> <span class="token punctuation">} };</span>
<span class="token keyword">const</span> b <span class="token operator">=</span> <span class="token function">deepClone</span><span class="token punctuation">(</span>a<span class="token punctuation">);</span> <span class="token comment">// a !== b, a.obj !== b.obj</span> <span class="token keyword">const</span> b <span class="token operator">=</span> <span class="token function">deepClone</span><span class="token punctuation">(</span>a<span class="token punctuation">);</span> <span class="token comment">// a !== b, a.obj !== b.obj</span>

View File

@ -7,8 +7,6 @@ Use `Object.assign()` and an empty object (`{}`) to create a shallow clone of th
Use `Object.keys()` and `Array.forEach()` to determine which key-value pairs need to be deep cloned. Use `Object.keys()` and `Array.forEach()` to determine which key-value pairs need to be deep cloned.
```js ```js
const deepClone = obj => { const deepClone = obj => {
let clone = Object.assign({}, obj); let clone = Object.assign({}, obj);
Object.keys(clone).forEach( Object.keys(clone).forEach(
@ -19,10 +17,6 @@ const deepClone = obj => {
``` ```
```js ```js
const a = { foo: 'bar', obj: { a: 1, b: 2 } }; const a = { foo: 'bar', obj: { a: 1, b: 2 } };
const b = deepClone(a); // a !== b, a.obj !== b.obj const b = deepClone(a); // a !== b, a.obj !== b.obj
``` ```