Travis build: 1792

This commit is contained in:
30secondsofcode
2018-03-09 17:39:54 +00:00
parent 1b516a8e74
commit 02a3064840
3 changed files with 3 additions and 11 deletions

View File

@ -1277,9 +1277,7 @@ Omit the second argument, `depth` to flatten only to a depth of `1` (single flat
```js
const flatten = (arr, depth = 1) =>
depth !== 1
? arr.reduce((a, v) => a.concat(Array.isArray(v) ? flatten(v, depth - 1) : v), [])
: arr.reduce((a, v) => a.concat(v), []);
arr.reduce((a, v) => a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v), []);
```
<details>

View File

@ -221,9 +221,7 @@ Object<span class="token punctuation">.</span><span class="token function">assig
.</span><span class="token function">slice</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)[</span><span class="token number">0</span><span class="token punctuation">][</span><span class="token number">0</span><span class="token punctuation">];</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">findLastIndex</span><span class="token punctuation">([</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">],</span> n <span class="token operator">=></span> n <span class="token operator">%</span> <span class="token number">2</span> <span class="token operator">===</span> <span class="token number">1</span><span class="token punctuation">);</span> <span class="token comment">// 2 (index of the value 3)</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="flatten" class="section double-padded">flatten</h3><div class="section double-padded"><p>Flattens an array up to the specified depth.</p><p>Use recursion, decrementing <code>depth</code> by 1 for each level of depth. Use <code>Array.reduce()</code> and <code>Array.concat()</code> to merge elements or arrays. Base case, for <code>depth</code> equal to <code>1</code> stops recursion. Omit the second argument, <code>depth</code> to flatten only to a depth of <code>1</code> (single flatten).</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">flatten</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> depth <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">=></span>
depth <span class="token operator">!==</span> <span class="token number">1</span>
<span class="token operator">?</span> arr<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>a<span class="token punctuation">,</span> v<span class="token punctuation">)</span> <span class="token operator">=></span> a<span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span>Array<span class="token punctuation">.</span><span class="token function">isArray</span><span class="token punctuation">(</span>v<span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token function">flatten</span><span class="token punctuation">(</span>v<span class="token punctuation">,</span> depth <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">) :</span> v<span class="token punctuation">), [])
:</span> arr<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>a<span class="token punctuation">,</span> v<span class="token punctuation">)</span> <span class="token operator">=></span> a<span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span>v<span class="token punctuation">), []);</span>
arr<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>a<span class="token punctuation">,</span> v<span class="token punctuation">)</span> <span class="token operator">=></span> a<span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span>depth <span class="token operator">></span> <span class="token number">1</span> <span class="token operator">&amp;&amp;</span> Array<span class="token punctuation">.</span><span class="token function">isArray</span><span class="token punctuation">(</span>v<span class="token punctuation">)</span> <span class="token operator">?</span> <span class="token function">flatten</span><span class="token punctuation">(</span>v<span class="token punctuation">,</span> depth <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">) :</span> v<span class="token punctuation">), []);</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">flatten</span><span class="token punctuation">([</span><span class="token number">1</span><span class="token punctuation">, [</span><span class="token number">2</span><span class="token punctuation">],</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">]);</span> <span class="token comment">// [1, 2, 3, 4]</span>
<span class="token function">flatten</span><span class="token punctuation">([</span><span class="token number">1</span><span class="token punctuation">, [</span><span class="token number">2</span><span class="token punctuation">, [</span><span class="token number">3</span><span class="token punctuation">, [</span><span class="token number">4</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">],</span> <span class="token number">6</span><span class="token punctuation">],</span> <span class="token number">7</span><span class="token punctuation">],</span> <span class="token number">8</span><span class="token punctuation">],</span> <span class="token number">2</span><span class="token punctuation">);</span> <span class="token comment">// [1, 2, 3, [4, 5], 6, 7, 8]</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="foreachright" class="section double-padded">forEachRight</h3><div class="section double-padded"><p>Executes a provided function once for each array element, starting from the array's last element.</p><p>Use <code>Array.slice(0)</code> to clone the given array, <code>Array.reverse()</code> to reverse it and <code>Array.forEach()</code> to iterate over the reversed array.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">forEachRight</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> callback<span class="token punctuation">)</span> <span class="token operator">=></span>

View File

@ -9,11 +9,7 @@ Omit the second argument, `depth` to flatten only to a depth of `1` (single flat
```js
const flatten = (arr, depth = 1) =>
arr.reduce(
(a, v) =>
a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v),
[],
);
arr.reduce((a, v) => a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v), []);
```
```js