Travis build: 1272

This commit is contained in:
30secondsofcode
2019-07-04 20:26:55 +00:00
parent 3e4436e9a2
commit c908876d7b
5 changed files with 14 additions and 11 deletions

View File

@ -984,9 +984,9 @@ chunk([1, 2, 3, 4, 5], 2); // [[1,2],[3,4],[5]]
### compact ### compact
Removes falsey values from an array. Removes falsy values from an array.
Use `Array.prototype.filter()` to filter out falsey values (`false`, `null`, `0`, `""`, `undefined`, and `NaN`). Use `Array.prototype.filter()` to filter out falsy values (`false`, `null`, `0`, `""`, `undefined`, and `NaN`).
```js ```js
const compact = arr => arr.filter(Boolean); const compact = arr => arr.filter(Boolean);
@ -1340,7 +1340,7 @@ filterNonUniqueBy(
Returns the last element for which the provided function returns a truthy value. Returns the last element for which the provided function returns a truthy value.
Use `Array.prototype.filter()` to remove elements for which `fn` returns falsey values, `Array.prototype.pop()` to get the last one. Use `Array.prototype.filter()` to remove elements for which `fn` returns falsy values, `Array.prototype.pop()` to get the last one.
```js ```js
const findLast = (arr, fn) => arr.filter(fn).pop(); const findLast = (arr, fn) => arr.filter(fn).pop();
@ -1362,7 +1362,7 @@ findLast([1, 2, 3, 4], n => n % 2 === 1); // 3
Returns the index of the last element for which the provided function returns a truthy value. Returns the index of the last element for which the provided function returns a truthy value.
Use `Array.prototype.map()` to map each element to an array with its index and value. Use `Array.prototype.map()` to map each element to an array with its index and value.
Use `Array.prototype.filter()` to remove elements for which `fn` returns falsey values, `Array.prototype.pop()` to get the last one. Use `Array.prototype.filter()` to remove elements for which `fn` returns falsy values, `Array.prototype.pop()` to get the last one.
```js ```js
const findLastIndex = (arr, fn) => const findLastIndex = (arr, fn) =>
@ -4732,6 +4732,7 @@ const checkProp = (predicate, prop) => obj => !!predicate(obj[prop]);
const lengthIs4 = checkProp(l => l === 4, 'length'); const lengthIs4 = checkProp(l => l === 4, 'length');
lengthIs4([]); // false lengthIs4([]); // false
lengthIs4([1,2,3,4]); // true lengthIs4([1,2,3,4]); // true
@ -7593,7 +7594,7 @@ omit({ a: 1, b: '2', c: 3 }, ['b']); // { 'a': 1, 'c': 3 }
### omitBy ### omitBy
Creates an object composed of the properties the given function returns falsey for. The function is invoked with two arguments: (value, key). Creates an object composed of the properties the given function returns falsy for. The function is invoked with two arguments: (value, key).
Use `Object.keys(obj)` and `Array.prototype.filter()`to remove the keys for which `fn` returns a truthy value. Use `Object.keys(obj)` and `Array.prototype.filter()`to remove the keys for which `fn` returns a truthy value.
Use `Array.prototype.reduce()` to convert the filtered keys back to an object with the corresponding key-value pairs. Use `Array.prototype.reduce()` to convert the filtered keys back to an object with the corresponding key-value pairs.
@ -7675,7 +7676,7 @@ pick({ a: 1, b: '2', c: 3 }, ['a', 'c']); // { 'a': 1, 'c': 3 }
Creates an object composed of the properties the given function returns truthy for. The function is invoked with two arguments: (value, key). Creates an object composed of the properties the given function returns truthy for. The function is invoked with two arguments: (value, key).
Use `Object.keys(obj)` and `Array.prototype.filter()`to remove the keys for which `fn` returns a falsey value. Use `Object.keys(obj)` and `Array.prototype.filter()`to remove the keys for which `fn` returns a falsy value.
Use `Array.prototype.reduce()` to convert the filtered keys back to an object with the corresponding key-value pairs. Use `Array.prototype.reduce()` to convert the filtered keys back to an object with the corresponding key-value pairs.
```js ```js

View File

@ -150,6 +150,7 @@ console<span class="token punctuation">.</span><span class="token function">log<
<span class="token keyword">const</span> lengthIs4 <span class="token operator">=</span> <span class="token function">checkProp</span><span class="token punctuation">(</span>l <span class="token operator">=></span> l <span class="token operator">===</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token string">'length'</span><span class="token punctuation">);</span> <span class="token keyword">const</span> lengthIs4 <span class="token operator">=</span> <span class="token function">checkProp</span><span class="token punctuation">(</span>l <span class="token operator">=></span> l <span class="token operator">===</span> <span class="token number">4</span><span class="token punctuation">,</span> <span class="token string">'length'</span><span class="token punctuation">);</span>
<span class="token function">lengthIs4</span><span class="token punctuation">([]);</span> <span class="token comment">// false</span> <span class="token function">lengthIs4</span><span class="token punctuation">([]);</span> <span class="token comment">// false</span>
<span class="token function">lengthIs4</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">// true</span> <span class="token function">lengthIs4</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">// true</span>

View File

@ -120,7 +120,7 @@
arr<span class="token punctuation">.</span><span class="token function">slice</span><span class="token punctuation">(</span>i <span class="token operator">*</span> size<span class="token punctuation">,</span> i <span class="token operator">*</span> size <span class="token operator">+</span> size<span class="token punctuation">) arr<span class="token punctuation">.</span><span class="token function">slice</span><span class="token punctuation">(</span>i <span class="token operator">*</span> size<span class="token punctuation">,</span> i <span class="token operator">*</span> size <span class="token operator">+</span> size<span class="token punctuation">)
);</span> );</span>
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">chunk</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">2</span><span class="token punctuation">);</span> <span class="token comment">// [[1,2],[3,4],[5]]</span> </pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">chunk</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">2</span><span class="token punctuation">);</span> <span class="token comment">// [[1,2],[3,4],[5]]</span>
</pre></div><div class="card code-card"><div class="corner beginner" aria-label="beginner" title="beginner"></div><div class="section card-content"><h4 id="compact">compact</h4><p>Removes falsey values from an array.</p><p>Use <code>Array.prototype.filter()</code> to filter out falsey values (<code>false</code>, <code>null</code>, <code>0</code>, <code>&quot;&quot;</code>, <code>undefined</code>, and <code>NaN</code>).</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">compact</span> <span class="token operator">=</span> arr <span class="token operator">=></span> arr<span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span>Boolean<span class="token punctuation">);</span> </pre></div><div class="card code-card"><div class="corner beginner" aria-label="beginner" title="beginner"></div><div class="section card-content"><h4 id="compact">compact</h4><p>Removes falsy values from an array.</p><p>Use <code>Array.prototype.filter()</code> to filter out falsy values (<code>false</code>, <code>null</code>, <code>0</code>, <code>&quot;&quot;</code>, <code>undefined</code>, and <code>NaN</code>).</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">compact</span> <span class="token operator">=</span> arr <span class="token operator">=></span> arr<span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span>Boolean<span class="token punctuation">);</span>
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">compact</span><span class="token punctuation">([</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token string">'e'</span> <span class="token operator">*</span> <span class="token number">23</span><span class="token punctuation">,</span> <span class="token number">NaN</span><span class="token punctuation">,</span> <span class="token string">'s'</span><span class="token punctuation">,</span> <span class="token number">34</span><span class="token punctuation">]);</span> <span class="token comment">// [ 1, 2, 3, 'a', 's', 34 ]</span> </pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">compact</span><span class="token punctuation">([</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token string">''</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">,</span> <span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token string">'e'</span> <span class="token operator">*</span> <span class="token number">23</span><span class="token punctuation">,</span> <span class="token number">NaN</span><span class="token punctuation">,</span> <span class="token string">'s'</span><span class="token punctuation">,</span> <span class="token number">34</span><span class="token punctuation">]);</span> <span class="token comment">// [ 1, 2, 3, 'a', 's', 34 ]</span>
</pre></div><div class="card code-card"><div class="corner intermediate" aria-label="intermediate" title="intermediate"></div><div class="section card-content"><h4 id="countby">countBy</h4><p>Groups the elements of an array based on the given function and returns the count of elements in each group.</p><p>Use <code>Array.prototype.map()</code> to map the values of an array to a function or property name. Use <code>Array.prototype.reduce()</code> to create an object, where the keys are produced from the mapped results.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">countBy</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span> </pre></div><div class="card code-card"><div class="corner intermediate" aria-label="intermediate" title="intermediate"></div><div class="section card-content"><h4 id="countby">countBy</h4><p>Groups the elements of an array based on the given function and returns the count of elements in each group.</p><p>Use <code>Array.prototype.map()</code> to map the values of an array to a function or property name. Use <code>Array.prototype.reduce()</code> to create an object, where the keys are produced from the mapped results.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">countBy</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span>
arr<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token keyword">typeof</span> fn <span class="token operator">===</span> <span class="token string">'function'</span> <span class="token operator">?</span> fn <span class="token punctuation">:</span> val <span class="token operator">=></span> val<span class="token punctuation">[</span>fn<span class="token punctuation">]).</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> val<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> arr<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span><span class="token keyword">typeof</span> fn <span class="token operator">===</span> <span class="token string">'function'</span> <span class="token operator">?</span> fn <span class="token punctuation">:</span> val <span class="token operator">=></span> val<span class="token punctuation">[</span>fn<span class="token punctuation">]).</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> val<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
@ -183,9 +183,9 @@
], ],
(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token operator">=></span> a<span class="token punctuation">.</span>id <span class="token operator">==</span> b<span class="token punctuation">.</span>id (</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token operator">=></span> a<span class="token punctuation">.</span>id <span class="token operator">==</span> b<span class="token punctuation">.</span>id
<span class="token punctuation">);</span> <span class="token comment">// [ { id: 2, value: 'c' } ]</span> <span class="token punctuation">);</span> <span class="token comment">// [ { id: 2, value: 'c' } ]</span>
</pre></div><div class="card code-card"><div class="corner beginner" aria-label="beginner" title="beginner"></div><div class="section card-content"><h4 id="findlast">findLast</h4><p>Returns the last element for which the provided function returns a truthy value.</p><p>Use <code>Array.prototype.filter()</code> to remove elements for which <code>fn</code> returns falsey values, <code>Array.prototype.pop()</code> to get the last one.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">findLast</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span> arr<span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span>fn<span class="token punctuation">).</span><span class="token function">pop</span><span class="token punctuation">();</span> </pre></div><div class="card code-card"><div class="corner beginner" aria-label="beginner" title="beginner"></div><div class="section card-content"><h4 id="findlast">findLast</h4><p>Returns the last element for which the provided function returns a truthy value.</p><p>Use <code>Array.prototype.filter()</code> to remove elements for which <code>fn</code> returns falsy values, <code>Array.prototype.pop()</code> to get the last one.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">findLast</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span> arr<span class="token punctuation">.</span><span class="token function">filter</span><span class="token punctuation">(</span>fn<span class="token punctuation">).</span><span class="token function">pop</span><span class="token punctuation">();</span>
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">findLast</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">// 3</span> </pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">findLast</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">// 3</span>
</pre></div><div class="card code-card"><div class="corner intermediate" aria-label="intermediate" title="intermediate"></div><div class="section card-content"><h4 id="findlastindex">findLastIndex</h4><p>Returns the index of the last element for which the provided function returns a truthy value.</p><p>Use <code>Array.prototype.map()</code> to map each element to an array with its index and value. Use <code>Array.prototype.filter()</code> to remove elements for which <code>fn</code> returns falsey values, <code>Array.prototype.pop()</code> to get the last one.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">findLastIndex</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span> </pre></div><div class="card code-card"><div class="corner intermediate" aria-label="intermediate" title="intermediate"></div><div class="section card-content"><h4 id="findlastindex">findLastIndex</h4><p>Returns the index of the last element for which the provided function returns a truthy value.</p><p>Use <code>Array.prototype.map()</code> to map each element to an array with its index and value. Use <code>Array.prototype.filter()</code> to remove elements for which <code>fn</code> returns falsy values, <code>Array.prototype.pop()</code> to get the last one.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">findLastIndex</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span>
arr arr
<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">((</span>val<span class="token punctuation">,</span> i<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">[</span>i<span class="token punctuation">,</span> val<span class="token punctuation">]) <span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">((</span>val<span class="token punctuation">,</span> i<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">[</span>i<span class="token punctuation">,</span> val<span class="token punctuation">])
.</span><span class="token function">filter</span><span class="token punctuation">(([</span>i<span class="token punctuation">,</span> val<span class="token punctuation">])</span> <span class="token operator">=></span> <span class="token function">fn</span><span class="token punctuation">(</span>val<span class="token punctuation">,</span> i<span class="token punctuation">,</span> arr<span class="token punctuation">)) .</span><span class="token function">filter</span><span class="token punctuation">(([</span>i<span class="token punctuation">,</span> val<span class="token punctuation">])</span> <span class="token operator">=></span> <span class="token function">fn</span><span class="token punctuation">(</span>val<span class="token punctuation">,</span> i<span class="token punctuation">,</span> arr<span class="token punctuation">))

View File

@ -361,7 +361,7 @@ Foo<span class="token punctuation">.</span>prototype<span class="token punctuati
.</span><span class="token function">filter</span><span class="token punctuation">(</span>k <span class="token operator">=> !</span>arr<span class="token punctuation">.</span><span class="token function">includes</span><span class="token punctuation">(</span>k<span class="token punctuation">)) .</span><span class="token function">filter</span><span class="token punctuation">(</span>k <span class="token operator">=> !</span>arr<span class="token punctuation">.</span><span class="token function">includes</span><span class="token punctuation">(</span>k<span class="token punctuation">))
.</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> key<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">((</span>acc<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">=</span> obj<span class="token punctuation">[</span>key<span class="token punctuation">]),</span> acc<span class="token punctuation">), {});</span> .</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> key<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">((</span>acc<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">=</span> obj<span class="token punctuation">[</span>key<span class="token punctuation">]),</span> acc<span class="token punctuation">), {});</span>
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">omit</span><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 string">'2'</span><span class="token punctuation">,</span> c<span class="token punctuation">:</span> <span class="token number">3</span> <span class="token punctuation">}, [</span><span class="token string">'b'</span><span class="token punctuation">]);</span> <span class="token comment">// { 'a': 1, 'c': 3 }</span> </pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">omit</span><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 string">'2'</span><span class="token punctuation">,</span> c<span class="token punctuation">:</span> <span class="token number">3</span> <span class="token punctuation">}, [</span><span class="token string">'b'</span><span class="token punctuation">]);</span> <span class="token comment">// { 'a': 1, 'c': 3 }</span>
</pre></div><div class="card code-card"><div class="corner intermediate" aria-label="intermediate" title="intermediate"></div><div class="section card-content"><h4 id="omitby">omitBy</h4><p>Creates an object composed of the properties the given function returns falsey for. The function is invoked with two arguments: (value, key).</p><p>Use <code>Object.keys(obj)</code> and <code>Array.prototype.filter()</code>to remove the keys for which <code>fn</code> returns a truthy value. Use <code>Array.prototype.reduce()</code> to convert the filtered keys back to an object with the corresponding key-value pairs.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">omitBy</span> <span class="token operator">=</span> <span class="token punctuation">(</span>obj<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span> </pre></div><div class="card code-card"><div class="corner intermediate" aria-label="intermediate" title="intermediate"></div><div class="section card-content"><h4 id="omitby">omitBy</h4><p>Creates an object composed of the properties the given function returns falsy for. The function is invoked with two arguments: (value, key).</p><p>Use <code>Object.keys(obj)</code> and <code>Array.prototype.filter()</code>to remove the keys for which <code>fn</code> returns a truthy value. Use <code>Array.prototype.reduce()</code> to convert the filtered keys back to an object with the corresponding key-value pairs.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">omitBy</span> <span class="token operator">=</span> <span class="token punctuation">(</span>obj<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span>
Object<span class="token punctuation">.</span><span class="token function">keys</span><span class="token punctuation">(</span>obj<span class="token punctuation">) Object<span class="token punctuation">.</span><span class="token function">keys</span><span class="token punctuation">(</span>obj<span class="token punctuation">)
.</span><span class="token function">filter</span><span class="token punctuation">(</span>k <span class="token operator">=> !</span><span class="token function">fn</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>k<span class="token punctuation">],</span> k<span class="token punctuation">)) .</span><span class="token function">filter</span><span class="token punctuation">(</span>k <span class="token operator">=> !</span><span class="token function">fn</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>k<span class="token punctuation">],</span> k<span class="token punctuation">))
.</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> key<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">((</span>acc<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">=</span> obj<span class="token punctuation">[</span>key<span class="token punctuation">]),</span> acc<span class="token punctuation">), {});</span> .</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> key<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">((</span>acc<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">=</span> obj<span class="token punctuation">[</span>key<span class="token punctuation">]),</span> acc<span class="token punctuation">), {});</span>
@ -382,7 +382,7 @@ Foo<span class="token punctuation">.</span>prototype<span class="token punctuati
</pre></div><div class="card code-card"><div class="corner intermediate" aria-label="intermediate" title="intermediate"></div><div class="section card-content"><h4 id="pick">pick</h4><p>Picks the key-value pairs corresponding to the given keys from an object.</p><p>Use <code>Array.prototype.reduce()</code> to convert the filtered/picked keys back to an object with the corresponding key-value pairs if the key exists in the object.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">pick</span> <span class="token operator">=</span> <span class="token punctuation">(</span>obj<span class="token punctuation">,</span> arr<span class="token punctuation">)</span> <span class="token operator">=></span> </pre></div><div class="card code-card"><div class="corner intermediate" aria-label="intermediate" title="intermediate"></div><div class="section card-content"><h4 id="pick">pick</h4><p>Picks the key-value pairs corresponding to the given keys from an object.</p><p>Use <code>Array.prototype.reduce()</code> to convert the filtered/picked keys back to an object with the corresponding key-value pairs if the key exists in the object.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">pick</span> <span class="token operator">=</span> <span class="token punctuation">(</span>obj<span class="token punctuation">,</span> arr<span class="token punctuation">)</span> <span class="token operator">=></span>
arr<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> curr<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span>curr <span class="token keyword">in</span> obj <span class="token operator">&amp;&amp;</span> <span class="token punctuation">(</span>acc<span class="token punctuation">[</span>curr<span class="token punctuation">]</span> <span class="token operator">=</span> obj<span class="token punctuation">[</span>curr<span class="token punctuation">]),</span> acc<span class="token punctuation">), {});</span> arr<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> curr<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span>curr <span class="token keyword">in</span> obj <span class="token operator">&amp;&amp;</span> <span class="token punctuation">(</span>acc<span class="token punctuation">[</span>curr<span class="token punctuation">]</span> <span class="token operator">=</span> obj<span class="token punctuation">[</span>curr<span class="token punctuation">]),</span> acc<span class="token punctuation">), {});</span>
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">pick</span><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 string">'2'</span><span class="token punctuation">,</span> c<span class="token punctuation">:</span> <span class="token number">3</span> <span class="token punctuation">}, [</span><span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token string">'c'</span><span class="token punctuation">]);</span> <span class="token comment">// { 'a': 1, 'c': 3 }</span> </pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">pick</span><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 string">'2'</span><span class="token punctuation">,</span> c<span class="token punctuation">:</span> <span class="token number">3</span> <span class="token punctuation">}, [</span><span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token string">'c'</span><span class="token punctuation">]);</span> <span class="token comment">// { 'a': 1, 'c': 3 }</span>
</pre></div><div class="card code-card"><div class="corner intermediate" aria-label="intermediate" title="intermediate"></div><div class="section card-content"><h4 id="pickby">pickBy</h4><p>Creates an object composed of the properties the given function returns truthy for. The function is invoked with two arguments: (value, key).</p><p>Use <code>Object.keys(obj)</code> and <code>Array.prototype.filter()</code>to remove the keys for which <code>fn</code> returns a falsey value. Use <code>Array.prototype.reduce()</code> to convert the filtered keys back to an object with the corresponding key-value pairs.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">pickBy</span> <span class="token operator">=</span> <span class="token punctuation">(</span>obj<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span> </pre></div><div class="card code-card"><div class="corner intermediate" aria-label="intermediate" title="intermediate"></div><div class="section card-content"><h4 id="pickby">pickBy</h4><p>Creates an object composed of the properties the given function returns truthy for. The function is invoked with two arguments: (value, key).</p><p>Use <code>Object.keys(obj)</code> and <code>Array.prototype.filter()</code>to remove the keys for which <code>fn</code> returns a falsy value. Use <code>Array.prototype.reduce()</code> to convert the filtered keys back to an object with the corresponding key-value pairs.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">pickBy</span> <span class="token operator">=</span> <span class="token punctuation">(</span>obj<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span>
Object<span class="token punctuation">.</span><span class="token function">keys</span><span class="token punctuation">(</span>obj<span class="token punctuation">) Object<span class="token punctuation">.</span><span class="token function">keys</span><span class="token punctuation">(</span>obj<span class="token punctuation">)
.</span><span class="token function">filter</span><span class="token punctuation">(</span>k <span class="token operator">=></span> <span class="token function">fn</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>k<span class="token punctuation">],</span> k<span class="token punctuation">)) .</span><span class="token function">filter</span><span class="token punctuation">(</span>k <span class="token operator">=></span> <span class="token function">fn</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>k<span class="token punctuation">],</span> k<span class="token punctuation">))
.</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> key<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">((</span>acc<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">=</span> obj<span class="token punctuation">[</span>key<span class="token punctuation">]),</span> acc<span class="token punctuation">), {});</span> .</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> key<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">((</span>acc<span class="token punctuation">[</span>key<span class="token punctuation">]</span> <span class="token operator">=</span> obj<span class="token punctuation">[</span>key<span class="token punctuation">]),</span> acc<span class="token punctuation">), {});</span>

View File

@ -15,6 +15,7 @@ const checkProp = (predicate, prop) => obj => !!predicate(obj[prop]);
const lengthIs4 = checkProp(l => l === 4, 'length'); const lengthIs4 = checkProp(l => l === 4, 'length');
lengthIs4([]); // false lengthIs4([]); // false
lengthIs4([1,2,3,4]); // true lengthIs4([1,2,3,4]); // true