Build
This commit is contained in:
57
README.md
57
README.md
@ -52,6 +52,7 @@
|
||||
* [`union`](#union)
|
||||
* [`without`](#without)
|
||||
* [`zip`](#zip)
|
||||
* [`zipObject`](#zipobject)
|
||||
|
||||
### Browser
|
||||
* [`arrayToHtmlList`](#arraytohtmllist)
|
||||
@ -81,6 +82,7 @@
|
||||
### Math
|
||||
* [`arrayAverage`](#arrayaverage)
|
||||
* [`arraySum`](#arraysum)
|
||||
* [`clampNumber`](#clampnumber)
|
||||
* [`collatz`](#collatz)
|
||||
* [`digitize`](#digitize)
|
||||
* [`distance`](#distance)
|
||||
@ -88,6 +90,7 @@
|
||||
* [`fibonacci`](#fibonacci)
|
||||
* [`gcd`](#gcd)
|
||||
* [`hammingDistance`](#hammingdistance)
|
||||
* [`inRange`](#inrange)
|
||||
* [`isArmstrongNumber`](#isarmstrongnumber)
|
||||
* [`isDivisible`](#isdivisible)
|
||||
* [`isEven`](#iseven)
|
||||
@ -782,6 +785,20 @@ const zip = (...arrays) => {
|
||||
//zip(['a'], [1, 2], [true, false]); -> [['a', 1, true], [undefined, 2, false]]
|
||||
```
|
||||
|
||||
[⬆ back to top](#table-of-contents)
|
||||
|
||||
### zipObject
|
||||
|
||||
Given an array of valid property identifiers and an array of values, return an object associating the properties to the values.
|
||||
|
||||
Since an object can have undefined values but not undefined property pointers, the array of properties is used to decide the structure of the resulting object using `Array.reduce()`.
|
||||
|
||||
```js
|
||||
const zipObject = ( props, values ) => props.reduce( ( obj, prop, index ) => ( obj[prop] = values[index], obj ), {} )
|
||||
// zipObject(['a','b','c'], [1,2]) -> {a: 1, b: 2, c: undefined}
|
||||
// zipObject(['a','b'], [1,2,3]) -> {a: 1, b: 2}
|
||||
```
|
||||
|
||||
[⬆ back to top](#table-of-contents)
|
||||
## Browser
|
||||
|
||||
@ -1135,6 +1152,26 @@ const arraySum = arr => arr.reduce((acc, val) => acc + val, 0);
|
||||
|
||||
[⬆ back to top](#table-of-contents)
|
||||
|
||||
### clampNumber
|
||||
|
||||
Clamps `num` within the inclusive `lower` and `upper` bounds.
|
||||
|
||||
If `lower` is greater than `upper`, swap them.
|
||||
If `num` falls within the range, return `num`.
|
||||
Otherwise return the nearest number in the range.
|
||||
|
||||
```js
|
||||
const clampNumber = (num, lower, upper) => {
|
||||
if(lower > upper) upper = [lower, lower = upper][0];
|
||||
return (num>=lower && num<=upper) ? num : ((num < lower) ? lower : upper)
|
||||
}
|
||||
// clampNumber(2, 3, 5) -> 3
|
||||
// clampNumber(1, -1, -5) -> -1
|
||||
// clampNumber(3, 2, 4) -> 3
|
||||
```
|
||||
|
||||
[⬆ back to top](#table-of-contents)
|
||||
|
||||
### collatz
|
||||
|
||||
Applies the Collatz algorithm.
|
||||
@ -1239,6 +1276,26 @@ const hammingDistance = (num1, num2) =>
|
||||
|
||||
[⬆ back to top](#table-of-contents)
|
||||
|
||||
### inRange
|
||||
|
||||
Checks if the given number falls in the given range.
|
||||
|
||||
Use arithmetic comparison to check if the given number is in the specified range.
|
||||
If the second parameter, `end`, is not specified, the reange is considered to be from `0` to `start`.
|
||||
|
||||
```js
|
||||
const inRange = (n, start, end=null) => {
|
||||
if(end && start > end) end = [start, start=end][0];
|
||||
return (end == null) ? (n>=0 && n<start) : (n>=start && n<end);
|
||||
}
|
||||
// inRange(3, 2, 5) -> true
|
||||
// inRange(3, 4) -> true
|
||||
// inRange(2, 3, 5) -> false
|
||||
// inrange(3, 2) -> false
|
||||
```
|
||||
|
||||
[⬆ back to top](#table-of-contents)
|
||||
|
||||
### isArmstrongNumber
|
||||
|
||||
Checks if the given number is an armstrong number or not.
|
||||
|
||||
@ -83,6 +83,7 @@
|
||||
<a class="sublink-1" href="#union">union</a>
|
||||
<a class="sublink-1" href="#without">without</a>
|
||||
<a class="sublink-1" href="#zip">zip</a>
|
||||
<a class="sublink-1" href="#zipobject">zipObject</a>
|
||||
|
||||
<h3>Browser
|
||||
</h3><a class="sublink-1" href="#arraytohtmllist">arrayToHtmlList</a>
|
||||
@ -112,6 +113,7 @@
|
||||
<h3>Math
|
||||
</h3><a class="sublink-1" href="#arrayaverage">arrayAverage</a>
|
||||
<a class="sublink-1" href="#arraysum">arraySum</a>
|
||||
<a class="sublink-1" href="#clampnumber">clampNumber</a>
|
||||
<a class="sublink-1" href="#collatz">collatz</a>
|
||||
<a class="sublink-1" href="#digitize">digitize</a>
|
||||
<a class="sublink-1" href="#distance">distance</a>
|
||||
@ -119,6 +121,7 @@
|
||||
<a class="sublink-1" href="#fibonacci">fibonacci</a>
|
||||
<a class="sublink-1" href="#gcd">gcd</a>
|
||||
<a class="sublink-1" href="#hammingdistance">hammingDistance</a>
|
||||
<a class="sublink-1" href="#inrange">inRange</a>
|
||||
<a class="sublink-1" href="#isarmstrongnumber">isArmstrongNumber</a>
|
||||
<a class="sublink-1" href="#isdivisible">isDivisible</a>
|
||||
<a class="sublink-1" href="#iseven">isEven</a>
|
||||
@ -525,6 +528,13 @@ If lengths of the argument-arrays vary, <code>undefined</code> is used where no
|
||||
//zip(['a', 'b'], [1, 2], [true, false]); -> [['a', 1, true], ['b', 2, false]]
|
||||
//zip(['a'], [1, 2], [true, false]); -> [['a', 1, true], [undefined, 2, false]]
|
||||
</code></pre>
|
||||
</div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="zipobject">zipObject</h3></div><div class="section double-padded">
|
||||
<p>Given an array of valid property identifiers and an array of values, return an object associating the properties to the values.</p>
|
||||
<p>Since an object can have undefined values but not undefined property pointers, the array of properties is used to decide the structure of the resulting object using <code>Array.reduce()</code>.</p>
|
||||
<pre><code class="language-js">const zipObject = ( props, values ) => props.reduce( ( obj, prop, index ) => ( obj[prop] = values[index], obj ), {} )
|
||||
// zipObject(['a','b','c'], [1,2]) -> {a: 1, b: 2, c: undefined}
|
||||
// zipObject(['a','b'], [1,2,3]) -> {a: 1, b: 2}
|
||||
</code></pre>
|
||||
</div></div><br/><h2 style="text-align:center;">Browser</h2>
|
||||
<div class="card fluid"><div class="section double-padded"><h3 id="arraytohtmllist">arrayToHtmlList</h3></div><div class="section double-padded">
|
||||
<p>Converts the given array elements into <code><li></code> tags and appends them to the list of the given id.</p>
|
||||
@ -728,6 +738,19 @@ async function sleepyWork() {
|
||||
<pre><code class="language-js">const arraySum = arr => arr.reduce((acc, val) => acc + val, 0);
|
||||
// arraySum([1,2,3,4]) -> 10
|
||||
</code></pre>
|
||||
</div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="clampnumber">clampNumber</h3></div><div class="section double-padded">
|
||||
<p>Clamps <code>num</code> within the inclusive <code>lower</code> and <code>upper</code> bounds.</p>
|
||||
<p>If <code>lower</code> is greater than <code>upper</code>, swap them.
|
||||
If <code>num</code> falls within the range, return <code>num</code>.
|
||||
Otherwise return the nearest number in the range.</p>
|
||||
<pre><code class="language-js">const clampNumber = (num, lower, upper) => {
|
||||
if(lower > upper) upper = [lower, lower = upper][0];
|
||||
return (num>=lower && num<=upper) ? num : ((num < lower) ? lower : upper)
|
||||
}
|
||||
// clampNumber(2, 3, 5) -> 3
|
||||
// clampNumber(1, -1, -5) -> -1
|
||||
// clampNumber(3, 2, 4) -> 3
|
||||
</code></pre>
|
||||
</div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="collatz">collatz</h3></div><div class="section double-padded">
|
||||
<p>Applies the Collatz algorithm.</p>
|
||||
<p>If <code>n</code> is even, return <code>n/2</code>. Otherwise return <code>3n+1</code>.</p>
|
||||
@ -783,6 +806,19 @@ Count and return the number of <code>1</code>s in the string, using <code>match(
|
||||
((num1 ^ num2).toString(2).match(/1/g) || '').length;
|
||||
// hammingDistance(2,3) -> 1
|
||||
</code></pre>
|
||||
</div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="inrange">inRange</h3></div><div class="section double-padded">
|
||||
<p>Checks if the given number falls in the given range.</p>
|
||||
<p>Use arithmetic comparison to check if the given number is in the specified range.
|
||||
If the second parameter, <code>end</code>, is not specified, the reange is considered to be from <code>0</code> to <code>start</code>.</p>
|
||||
<pre><code class="language-js">const inRange = (n, start, end=null) => {
|
||||
if(end && start > end) end = [start, start=end][0];
|
||||
return (end == null) ? (n>=0 && n<start) : (n>=start && n<end);
|
||||
}
|
||||
// inRange(3, 2, 5) -> true
|
||||
// inRange(3, 4) -> true
|
||||
// inRange(2, 3, 5) -> false
|
||||
// inrange(3, 2) -> false
|
||||
</code></pre>
|
||||
</div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="isarmstrongnumber">isArmstrongNumber</h3></div><div class="section double-padded">
|
||||
<p>Checks if the given number is an armstrong number or not.</p>
|
||||
<p>Convert the given number into array of digits. Use <code>Math.pow()</code> to get the appropriate power for each digit and sum them up. If the sum is equal to the number itself, return <code>true</code> otherwise <code>false</code>.</p>
|
||||
|
||||
@ -10,6 +10,7 @@ capitalize:string
|
||||
capitalizeEveryWord:string
|
||||
chainAsync:function
|
||||
chunk:array
|
||||
clampNumber:math
|
||||
cleanObj:object
|
||||
coalesce:utility
|
||||
coalesceFactory:utility
|
||||
@ -52,6 +53,7 @@ initial:array
|
||||
initialize2DArray:array
|
||||
initializeArrayWithRange:array
|
||||
initializeArrayWithValues:array
|
||||
inRange:math
|
||||
intersection:array
|
||||
isArmstrongNumber:math
|
||||
isArray:utility
|
||||
|
||||
Reference in New Issue
Block a user