Travis build: 1074
This commit is contained in:
23
README.md
23
README.md
@ -4671,6 +4671,7 @@ const checkProp = (predicate, prop) => obj => !!predicate(obj[prop]);
|
|||||||
```js
|
```js
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
@ -6852,11 +6853,11 @@ const deepMapKeys = (obj, f) =>
|
|||||||
? obj.map(val => deepMapKeys(val, f))
|
? obj.map(val => deepMapKeys(val, f))
|
||||||
: typeof obj === 'object'
|
: typeof obj === 'object'
|
||||||
? Object.keys(obj).reduce((acc, current) => {
|
? Object.keys(obj).reduce((acc, current) => {
|
||||||
const val = obj[current];
|
const val = obj[current];
|
||||||
acc[f(current)] =
|
acc[f(current)] =
|
||||||
val !== null && typeof val === 'object' ? deepMapKeys(val, f) : (acc[f(current)] = val);
|
val !== null && typeof val === 'object' ? deepMapKeys(val, f) : (acc[f(current)] = val);
|
||||||
return acc;
|
return acc;
|
||||||
}, {})
|
}, {})
|
||||||
: obj;
|
: obj;
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -6930,9 +6931,9 @@ const dig = (obj, target) =>
|
|||||||
target in obj
|
target in obj
|
||||||
? obj[target]
|
? obj[target]
|
||||||
: Object.values(obj).reduce((acc, val) => {
|
: Object.values(obj).reduce((acc, val) => {
|
||||||
if (acc !== undefined) return acc;
|
if (acc !== undefined) return acc;
|
||||||
if (typeof val === 'object') return dig(val, target);
|
if (typeof val === 'object') return dig(val, target);
|
||||||
}, undefined);
|
}, undefined);
|
||||||
```
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
@ -8872,18 +8873,20 @@ isNull(null); // true
|
|||||||
|
|
||||||
Checks if the given argument is a number.
|
Checks if the given argument is a number.
|
||||||
|
|
||||||
Use `typeof` to check if a value is classified as a number primitive.
|
Use `typeof` to check if a value is classified as a number primitive.
|
||||||
|
To safeguard against `NaN`, check if `val === val` (as `NaN` has a `typeof` equal to `number` and is the only value not equal to itself).
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const isNumber = val => typeof val === 'number';
|
const isNumber = val => typeof val === 'number' && val === val;
|
||||||
```
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Examples</summary>
|
<summary>Examples</summary>
|
||||||
|
|
||||||
```js
|
```js
|
||||||
isNumber('1'); // false
|
|
||||||
isNumber(1); // true
|
isNumber(1); // true
|
||||||
|
isNumber('1'); // false
|
||||||
|
isNumber(NaN); // false
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|||||||
@ -146,6 +146,7 @@ console<span class="token punctuation">.</span><span class="token function">log<
|
|||||||
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="checkprop">checkProp</h4><p>Given a <code>predicate</code> function and a <code>prop</code> string, this curried function will then take an <code>object</code> to inspect by calling the property and passing it to the predicate.</p><p>Summon <code>prop</code> on <code>obj</code>, pass it to a provided <code>predicate</code> function and return a masked boolean.</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">checkProp</span> <span class="token operator">=</span> <span class="token punctuation">(</span>predicate<span class="token punctuation">,</span> prop<span class="token punctuation">)</span> <span class="token operator">=></span> obj <span class="token operator">=> !!</span><span class="token function">predicate</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>prop<span class="token punctuation">]);</span>
|
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="checkprop">checkProp</h4><p>Given a <code>predicate</code> function and a <code>prop</code> string, this curried function will then take an <code>object</code> to inspect by calling the property and passing it to the predicate.</p><p>Summon <code>prop</code> on <code>obj</code>, pass it to a provided <code>predicate</code> function and return a masked boolean.</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">checkProp</span> <span class="token operator">=</span> <span class="token punctuation">(</span>predicate<span class="token punctuation">,</span> prop<span class="token punctuation">)</span> <span class="token operator">=></span> obj <span class="token operator">=> !!</span><span class="token function">predicate</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>prop<span class="token punctuation">]);</span>
|
||||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js">
|
</pre><label class="collapse">examples</label><pre class="section card-examples language-js">
|
||||||
|
|
||||||
|
|
||||||
<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>
|
||||||
|
|||||||
@ -139,11 +139,11 @@ o<span class="token punctuation">[</span><span class="token number">1</span><spa
|
|||||||
<span class="token operator">?</span> obj<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span>val <span class="token operator">=></span> <span class="token function">deepMapKeys</span><span class="token punctuation">(</span>val<span class="token punctuation">,</span> f<span class="token punctuation">))
|
<span class="token operator">?</span> obj<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span>val <span class="token operator">=></span> <span class="token function">deepMapKeys</span><span class="token punctuation">(</span>val<span class="token punctuation">,</span> f<span class="token punctuation">))
|
||||||
:</span> <span class="token keyword">typeof</span> obj <span class="token operator">===</span> <span class="token string">'object'</span>
|
:</span> <span class="token keyword">typeof</span> obj <span class="token operator">===</span> <span class="token string">'object'</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">).</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> current<span class="token punctuation">)</span> <span class="token operator">=></span> <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">).</span><span class="token function">reduce</span><span class="token punctuation">((</span>acc<span class="token punctuation">,</span> current<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
|
||||||
<span class="token keyword">const</span> val <span class="token operator">=</span> obj<span class="token punctuation">[</span>current<span class="token punctuation">];</span>
|
<span class="token keyword">const</span> val <span class="token operator">=</span> obj<span class="token punctuation">[</span>current<span class="token punctuation">];</span>
|
||||||
acc<span class="token punctuation">[</span><span class="token function">f</span><span class="token punctuation">(</span>current<span class="token punctuation">)]</span> <span class="token operator">=</span>
|
acc<span class="token punctuation">[</span><span class="token function">f</span><span class="token punctuation">(</span>current<span class="token punctuation">)]</span> <span class="token operator">=</span>
|
||||||
val <span class="token operator">!==</span> <span class="token keyword">null</span> <span class="token operator">&&</span> <span class="token keyword">typeof</span> val <span class="token operator">===</span> <span class="token string">'object'</span> <span class="token operator">?</span> <span class="token function">deepMapKeys</span><span class="token punctuation">(</span>val<span class="token punctuation">,</span> f<span class="token punctuation">) : (</span>acc<span class="token punctuation">[</span><span class="token function">f</span><span class="token punctuation">(</span>current<span class="token punctuation">)]</span> <span class="token operator">=</span> val<span class="token punctuation">);</span>
|
val <span class="token operator">!==</span> <span class="token keyword">null</span> <span class="token operator">&&</span> <span class="token keyword">typeof</span> val <span class="token operator">===</span> <span class="token string">'object'</span> <span class="token operator">?</span> <span class="token function">deepMapKeys</span><span class="token punctuation">(</span>val<span class="token punctuation">,</span> f<span class="token punctuation">) : (</span>acc<span class="token punctuation">[</span><span class="token function">f</span><span class="token punctuation">(</span>current<span class="token punctuation">)]</span> <span class="token operator">=</span> val<span class="token punctuation">);</span>
|
||||||
<span class="token keyword">return</span> acc<span class="token punctuation">;
|
<span class="token keyword">return</span> acc<span class="token punctuation">;
|
||||||
}, {})
|
}, {})
|
||||||
:</span> obj<span class="token punctuation">;</span>
|
:</span> obj<span class="token punctuation">;</span>
|
||||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token keyword">const</span> obj <span class="token operator">=</span> <span class="token punctuation">{</span>
|
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token keyword">const</span> obj <span class="token operator">=</span> <span class="token punctuation">{</span>
|
||||||
foo<span class="token punctuation">:</span> <span class="token string">'1'</span><span class="token punctuation">,</span>
|
foo<span class="token punctuation">:</span> <span class="token string">'1'</span><span class="token punctuation">,</span>
|
||||||
@ -178,9 +178,9 @@ o<span class="token punctuation">[</span><span class="token number">1</span><spa
|
|||||||
target <span class="token keyword">in</span> obj
|
target <span class="token keyword">in</span> obj
|
||||||
<span class="token operator">?</span> obj<span class="token punctuation">[</span>target<span class="token punctuation">]
|
<span class="token operator">?</span> obj<span class="token punctuation">[</span>target<span class="token punctuation">]
|
||||||
:</span> Object<span class="token punctuation">.</span><span class="token function">values</span><span class="token punctuation">(</span>obj<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>
|
:</span> Object<span class="token punctuation">.</span><span class="token function">values</span><span class="token punctuation">(</span>obj<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>
|
||||||
<span class="token keyword">if</span> <span class="token punctuation">(</span>acc <span class="token operator">!==</span> undefined<span class="token punctuation">)</span> <span class="token keyword">return</span> acc<span class="token punctuation">;</span>
|
<span class="token keyword">if</span> <span class="token punctuation">(</span>acc <span class="token operator">!==</span> undefined<span class="token punctuation">)</span> <span class="token keyword">return</span> acc<span class="token punctuation">;</span>
|
||||||
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">typeof</span> val <span class="token operator">===</span> <span class="token string">'object'</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token function">dig</span><span class="token punctuation">(</span>val<span class="token punctuation">,</span> target<span class="token punctuation">);
|
<span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">typeof</span> val <span class="token operator">===</span> <span class="token string">'object'</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token function">dig</span><span class="token punctuation">(</span>val<span class="token punctuation">,</span> target<span class="token punctuation">);
|
||||||
},</span> undefined<span class="token punctuation">);</span>
|
},</span> undefined<span class="token punctuation">);</span>
|
||||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token keyword">const</span> data <span class="token operator">=</span> <span class="token punctuation">{</span>
|
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token keyword">const</span> data <span class="token operator">=</span> <span class="token punctuation">{</span>
|
||||||
level1<span class="token punctuation">: {</span>
|
level1<span class="token punctuation">: {</span>
|
||||||
level2<span class="token punctuation">: {</span>
|
level2<span class="token punctuation">: {</span>
|
||||||
|
|||||||
@ -136,9 +136,10 @@
|
|||||||
<span class="token function">isNil</span><span class="token punctuation">(</span>undefined<span class="token punctuation">);</span> <span class="token comment">// true</span>
|
<span class="token function">isNil</span><span class="token punctuation">(</span>undefined<span class="token punctuation">);</span> <span class="token comment">// true</span>
|
||||||
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="isnull">isNull</h4><p>Returns <code>true</code> if the specified value is <code>null</code>, <code>false</code> otherwise.</p><p>Use the strict equality operator to check if the value and of <code>val</code> are equal to <code>null</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">isNull</span> <span class="token operator">=</span> val <span class="token operator">=></span> val <span class="token operator">===</span> <span class="token keyword">null</span><span class="token punctuation">;</span>
|
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="isnull">isNull</h4><p>Returns <code>true</code> if the specified value is <code>null</code>, <code>false</code> otherwise.</p><p>Use the strict equality operator to check if the value and of <code>val</code> are equal to <code>null</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">isNull</span> <span class="token operator">=</span> val <span class="token operator">=></span> val <span class="token operator">===</span> <span class="token keyword">null</span><span class="token punctuation">;</span>
|
||||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">isNull</span><span class="token punctuation">(</span><span class="token keyword">null</span><span class="token punctuation">);</span> <span class="token comment">// true</span>
|
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">isNull</span><span class="token punctuation">(</span><span class="token keyword">null</span><span class="token punctuation">);</span> <span class="token comment">// true</span>
|
||||||
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="isnumber">isNumber</h4><p>Checks if the given argument is a number.</p><p>Use <code>typeof</code> to check if a value is classified as a number primitive.</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">isNumber</span> <span class="token operator">=</span> val <span class="token operator">=></span> <span class="token keyword">typeof</span> val <span class="token operator">===</span> <span class="token string">'number'</span><span class="token punctuation">;</span>
|
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="isnumber">isNumber</h4><p>Checks if the given argument is a number.</p><p>Use <code>typeof</code> to check if a value is classified as a number primitive. To safeguard against <code>NaN</code>, check if <code>val === val</code> (as <code>NaN</code> has a <code>typeof</code> equal to <code>number</code> and is the only value not equal to itself).</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">isNumber</span> <span class="token operator">=</span> val <span class="token operator">=></span> <span class="token keyword">typeof</span> val <span class="token operator">===</span> <span class="token string">'number'</span> <span class="token operator">&&</span> val <span class="token operator">===</span> val<span class="token punctuation">;</span>
|
||||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">isNumber</span><span class="token punctuation">(</span><span class="token string">'1'</span><span class="token punctuation">);</span> <span class="token comment">// false</span>
|
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">isNumber</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">);</span> <span class="token comment">// true</span>
|
||||||
<span class="token function">isNumber</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">);</span> <span class="token comment">// true</span>
|
<span class="token function">isNumber</span><span class="token punctuation">(</span><span class="token string">'1'</span><span class="token punctuation">);</span> <span class="token comment">// false</span>
|
||||||
|
<span class="token function">isNumber</span><span class="token punctuation">(</span><span class="token number">NaN</span><span class="token punctuation">);</span> <span class="token comment">// false</span>
|
||||||
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="isobject">isObject</h4><p>Returns a boolean determining if the passed value is an object or not.</p><p>Uses the <code>Object</code> constructor to create an object wrapper for the given value. If the value is <code>null</code> or <code>undefined</code>, create and return an empty object. Οtherwise, return an object of a type that corresponds to the given value.</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">isObject</span> <span class="token operator">=</span> obj <span class="token operator">=></span> obj <span class="token operator">===</span> <span class="token function">Object</span><span class="token punctuation">(</span>obj<span class="token punctuation">);</span>
|
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="isobject">isObject</h4><p>Returns a boolean determining if the passed value is an object or not.</p><p>Uses the <code>Object</code> constructor to create an object wrapper for the given value. If the value is <code>null</code> or <code>undefined</code>, create and return an empty object. Οtherwise, return an object of a type that corresponds to the given value.</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">isObject</span> <span class="token operator">=</span> obj <span class="token operator">=></span> obj <span class="token operator">===</span> <span class="token function">Object</span><span class="token punctuation">(</span>obj<span class="token punctuation">);</span>
|
||||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">isObject</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>
|
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">isObject</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">isObject</span><span class="token punctuation">([]);</span> <span class="token comment">// true</span>
|
<span class="token function">isObject</span><span class="token punctuation">([]);</span> <span class="token comment">// true</span>
|
||||||
|
|||||||
@ -11,6 +11,7 @@ const checkProp = (predicate, prop) => obj => !!predicate(obj[prop]);
|
|||||||
```js
|
```js
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@ -13,11 +13,11 @@ const deepMapKeys = (obj, f) =>
|
|||||||
? obj.map(val => deepMapKeys(val, f))
|
? obj.map(val => deepMapKeys(val, f))
|
||||||
: typeof obj === 'object'
|
: typeof obj === 'object'
|
||||||
? Object.keys(obj).reduce((acc, current) => {
|
? Object.keys(obj).reduce((acc, current) => {
|
||||||
const val = obj[current];
|
const val = obj[current];
|
||||||
acc[f(current)] =
|
acc[f(current)] =
|
||||||
val !== null && typeof val === 'object' ? deepMapKeys(val, f) : (acc[f(current)] = val);
|
val !== null && typeof val === 'object' ? deepMapKeys(val, f) : (acc[f(current)] = val);
|
||||||
return acc;
|
return acc;
|
||||||
}, {})
|
}, {})
|
||||||
: obj;
|
: obj;
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@ -10,9 +10,9 @@ const dig = (obj, target) =>
|
|||||||
target in obj
|
target in obj
|
||||||
? obj[target]
|
? obj[target]
|
||||||
: Object.values(obj).reduce((acc, val) => {
|
: Object.values(obj).reduce((acc, val) => {
|
||||||
if (acc !== undefined) return acc;
|
if (acc !== undefined) return acc;
|
||||||
if (typeof val === 'object') return dig(val, target);
|
if (typeof val === 'object') return dig(val, target);
|
||||||
}, undefined);
|
}, undefined);
|
||||||
```
|
```
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
|||||||
16
test/_30s.js
16
test/_30s.js
@ -243,11 +243,11 @@ const deepMapKeys = (obj, f) =>
|
|||||||
? obj.map(val => deepMapKeys(val, f))
|
? obj.map(val => deepMapKeys(val, f))
|
||||||
: typeof obj === 'object'
|
: typeof obj === 'object'
|
||||||
? Object.keys(obj).reduce((acc, current) => {
|
? Object.keys(obj).reduce((acc, current) => {
|
||||||
const val = obj[current];
|
const val = obj[current];
|
||||||
acc[f(current)] =
|
acc[f(current)] =
|
||||||
val !== null && typeof val === 'object' ? deepMapKeys(val, f) : (acc[f(current)] = val);
|
val !== null && typeof val === 'object' ? deepMapKeys(val, f) : (acc[f(current)] = val);
|
||||||
return acc;
|
return acc;
|
||||||
}, {})
|
}, {})
|
||||||
: obj;
|
: obj;
|
||||||
const defaults = (obj, ...defs) => Object.assign({}, obj, ...defs.reverse(), obj);
|
const defaults = (obj, ...defs) => Object.assign({}, obj, ...defs.reverse(), obj);
|
||||||
const defer = (fn, ...args) => setTimeout(fn, 1, ...args);
|
const defer = (fn, ...args) => setTimeout(fn, 1, ...args);
|
||||||
@ -270,9 +270,9 @@ const dig = (obj, target) =>
|
|||||||
target in obj
|
target in obj
|
||||||
? obj[target]
|
? obj[target]
|
||||||
: Object.values(obj).reduce((acc, val) => {
|
: Object.values(obj).reduce((acc, val) => {
|
||||||
if (acc !== undefined) return acc;
|
if (acc !== undefined) return acc;
|
||||||
if (typeof val === 'object') return dig(val, target);
|
if (typeof val === 'object') return dig(val, target);
|
||||||
}, undefined);
|
}, undefined);
|
||||||
const digitize = n => [...`${n}`].map(i => parseInt(i));
|
const digitize = n => [...`${n}`].map(i => parseInt(i));
|
||||||
const distance = (x0, y0, x1, y1) => Math.hypot(x1 - x0, y1 - y0);
|
const distance = (x0, y0, x1, y1) => Math.hypot(x1 - x0, y1 - y0);
|
||||||
const drop = (arr, n = 1) => arr.slice(n);
|
const drop = (arr, n = 1) => arr.slice(n);
|
||||||
@ -604,7 +604,7 @@ const isLowerCase = str => str === str.toLowerCase();
|
|||||||
const isNegativeZero = val => val === 0 && 1 / val === -Infinity;
|
const isNegativeZero = val => val === 0 && 1 / val === -Infinity;
|
||||||
const isNil = val => val === undefined || val === null;
|
const isNil = val => val === undefined || val === null;
|
||||||
const isNull = val => val === null;
|
const isNull = val => val === null;
|
||||||
const isNumber = val => typeof val === 'number';
|
const isNumber = val => typeof val === 'number' && val === val;
|
||||||
const isObject = obj => obj === Object(obj);
|
const isObject = obj => obj === Object(obj);
|
||||||
const isObjectLike = val => val !== null && typeof val === 'object';
|
const isObjectLike = val => val !== null && typeof val === 'object';
|
||||||
const isPlainObject = val => !!val && typeof val === 'object' && val.constructor === Object;
|
const isPlainObject = val => !!val && typeof val === 'object' && val.constructor === Object;
|
||||||
|
|||||||
Reference in New Issue
Block a user