Travis build: 2161

This commit is contained in:
30secondsofcode
2018-06-18 18:26:52 +00:00
parent 5d79b0a165
commit 3197d6ddce
13 changed files with 40 additions and 31 deletions

View File

@ -4060,8 +4060,8 @@ const getMeridiemSuffixOfInteger = num =>
: num === 12 : num === 12
? 12 + 'pm' ? 12 + 'pm'
: num < 12 : num < 12
? num % 12 + 'am' ? (num % 12) + 'am'
: num % 12 + 'pm'; : (num % 12) + 'pm';
``` ```
<details> <details>
@ -4256,7 +4256,10 @@ const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args)));
```js ```js
const add5 = x => x + 5; const add5 = x => x + 5;
const multiply = (x, y) => x * y; const multiply = (x, y) => x * y;
const multiplyAndAdd5 = compose(add5, multiply); const multiplyAndAdd5 = compose(
add5,
multiply
);
multiplyAndAdd5(5, 2); // 15 multiplyAndAdd5(5, 2); // 15
``` ```
@ -4472,7 +4475,7 @@ Omit the second argument, `iterations`, to use the default of 100 iterations.
const hz = (fn, iterations = 100) => { const hz = (fn, iterations = 100) => {
const before = performance.now(); const before = performance.now();
for (let i = 0; i < iterations; i++) fn(); for (let i = 0; i < iterations; i++) fn();
return 1000 * iterations / (performance.now() - before); return (1000 * iterations) / (performance.now() - before);
}; };
``` ```
@ -4992,7 +4995,7 @@ Converts an angle from degrees to radians.
Use `Math.PI` and the degree to radian formula to convert the angle from degrees to radians. Use `Math.PI` and the degree to radian formula to convert the angle from degrees to radians.
```js ```js
const degreesToRads = deg => deg * Math.PI / 180.0; const degreesToRads = deg => (deg * Math.PI) / 180.0;
``` ```
<details> <details>
@ -5356,7 +5359,7 @@ The GCD formula uses recursion.
```js ```js
const lcm = (...arr) => { const lcm = (...arr) => {
const gcd = (x, y) => (!y ? x : gcd(y, x % y)); const gcd = (x, y) => (!y ? x : gcd(y, x % y));
const _lcm = (x, y) => x * y / gcd(x, y); const _lcm = (x, y) => (x * y) / gcd(x, y);
return [...arr].reduce((a, b) => _lcm(a, b)); return [...arr].reduce((a, b) => _lcm(a, b));
}; };
``` ```
@ -5391,7 +5394,7 @@ const luhnCheck = num => {
.reverse() .reverse()
.map(x => parseInt(x)); .map(x => parseInt(x));
let lastDigit = arr.splice(0, 1)[0]; let lastDigit = arr.splice(0, 1)[0];
let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + (val * 2) % 9 || 9), 0); let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0);
sum += lastDigit; sum += lastDigit;
return sum % 10 === 0; return sum % 10 === 0;
}; };
@ -5492,7 +5495,7 @@ Use `Array.reduce()` to calculate how many numbers are below the value and how m
```js ```js
const percentile = (arr, val) => const percentile = (arr, val) =>
100 * arr.reduce((acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0) / arr.length; (100 * arr.reduce((acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0)) / arr.length;
``` ```
<details> <details>
@ -5564,7 +5567,7 @@ Converts an angle from radians to degrees.
Use `Math.PI` and the radian to degree formula to convert the angle from radians to degrees. Use `Math.PI` and the radian to degree formula to convert the angle from radians to degrees.
```js ```js
const radsToDegrees = rad => rad * 180.0 / Math.PI; const radsToDegrees = rad => (rad * 180.0) / Math.PI;
``` ```
<details> <details>

View File

@ -89,8 +89,8 @@
<span class="token punctuation">:</span> num <span class="token operator">===</span> <span class="token number">12</span> <span class="token punctuation">:</span> num <span class="token operator">===</span> <span class="token number">12</span>
<span class="token operator">?</span> <span class="token number">12</span> <span class="token operator">+</span> <span class="token string">'pm'</span> <span class="token operator">?</span> <span class="token number">12</span> <span class="token operator">+</span> <span class="token string">'pm'</span>
<span class="token punctuation">:</span> num <span class="token operator">&lt;</span> <span class="token number">12</span> <span class="token punctuation">:</span> num <span class="token operator">&lt;</span> <span class="token number">12</span>
<span class="token operator">?</span> num <span class="token operator">%</span> <span class="token number">12</span> <span class="token operator">+</span> <span class="token string">'am'</span> <span class="token operator">?</span> <span class="token punctuation">(</span>num <span class="token operator">%</span> <span class="token number">12</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">'am'</span>
<span class="token punctuation">:</span> num <span class="token operator">%</span> <span class="token number">12</span> <span class="token operator">+</span> <span class="token string">'pm'</span><span class="token punctuation">;</span> <span class="token punctuation">: (</span>num <span class="token operator">%</span> <span class="token number">12</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">'pm'</span><span class="token punctuation">;</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">);</span> <span class="token comment">// "12am"</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">);</span> <span class="token comment">// "12am"</span>
<span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">11</span><span class="token punctuation">);</span> <span class="token comment">// "11am"</span> <span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">11</span><span class="token punctuation">);</span> <span class="token comment">// "11am"</span>
<span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">13</span><span class="token punctuation">);</span> <span class="token comment">// "1pm"</span> <span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">13</span><span class="token punctuation">);</span> <span class="token comment">// "1pm"</span>
@ -111,7 +111,7 @@
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">last</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 comment">// 3</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">last</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 comment">// 3</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div></div></div><div class="row"><div class="col-sm-12 col-md-10 col-lg-8 col-md-offset-1 col-lg-offset-2"><div class="card fluid"><h3 id="lcm.md" class="section double-padded">lcm</h3><div class="section double-padded"><p>Returns the least common multiple of two or more numbers.</p><p>Use the greatest common divisor (GCD) formula and the fact that <code>lcm(x,y) = x * y / gcd(x,y)</code> to determine the least common multiple. The GCD formula uses recursion.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">lcm</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>arr<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div></div></div><div class="row"><div class="col-sm-12 col-md-10 col-lg-8 col-md-offset-1 col-lg-offset-2"><div class="card fluid"><h3 id="lcm.md" class="section double-padded">lcm</h3><div class="section double-padded"><p>Returns the least common multiple of two or more numbers.</p><p>Use the greatest common divisor (GCD) formula and the fact that <code>lcm(x,y) = x * y / gcd(x,y)</code> to determine the least common multiple. The GCD formula uses recursion.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">lcm</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>arr<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> <span class="token function-variable function">gcd</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">!</span>y <span class="token operator">?</span> x <span class="token punctuation">:</span> <span class="token function">gcd</span><span class="token punctuation">(</span>y<span class="token punctuation">,</span> x <span class="token operator">%</span> y<span class="token punctuation">));</span> <span class="token keyword">const</span> <span class="token function-variable function">gcd</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">!</span>y <span class="token operator">?</span> x <span class="token punctuation">:</span> <span class="token function">gcd</span><span class="token punctuation">(</span>y<span class="token punctuation">,</span> x <span class="token operator">%</span> y<span class="token punctuation">));</span>
<span class="token keyword">const</span> <span class="token function-variable function">_lcm</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> x <span class="token operator">*</span> y <span class="token operator">/</span> <span class="token function">gcd</span><span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">);</span> <span class="token keyword">const</span> <span class="token function-variable function">_lcm</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span>x <span class="token operator">*</span> y<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token function">gcd</span><span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">);</span>
<span class="token keyword">return</span> <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>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">_lcm</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)); <span class="token keyword">return</span> <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>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">_lcm</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">));
};</span> };</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">lcm</span><span class="token punctuation">(</span><span class="token number">12</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">);</span> <span class="token comment">// 84</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">lcm</span><span class="token punctuation">(</span><span class="token number">12</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">);</span> <span class="token comment">// 84</span>

View File

@ -106,8 +106,8 @@
<span class="token punctuation">:</span> num <span class="token operator">===</span> <span class="token number">12</span> <span class="token punctuation">:</span> num <span class="token operator">===</span> <span class="token number">12</span>
<span class="token operator">?</span> <span class="token number">12</span> <span class="token operator">+</span> <span class="token string">'pm'</span> <span class="token operator">?</span> <span class="token number">12</span> <span class="token operator">+</span> <span class="token string">'pm'</span>
<span class="token punctuation">:</span> num <span class="token operator">&lt;</span> <span class="token number">12</span> <span class="token punctuation">:</span> num <span class="token operator">&lt;</span> <span class="token number">12</span>
<span class="token operator">?</span> num <span class="token operator">%</span> <span class="token number">12</span> <span class="token operator">+</span> <span class="token string">'am'</span> <span class="token operator">?</span> <span class="token punctuation">(</span>num <span class="token operator">%</span> <span class="token number">12</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">'am'</span>
<span class="token punctuation">:</span> num <span class="token operator">%</span> <span class="token number">12</span> <span class="token operator">+</span> <span class="token string">'pm'</span><span class="token punctuation">;</span> <span class="token punctuation">: (</span>num <span class="token operator">%</span> <span class="token number">12</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token string">'pm'</span><span class="token punctuation">;</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">);</span> <span class="token comment">// "12am"</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">);</span> <span class="token comment">// "12am"</span>
<span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">11</span><span class="token punctuation">);</span> <span class="token comment">// "11am"</span> <span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">11</span><span class="token punctuation">);</span> <span class="token comment">// "11am"</span>
<span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">13</span><span class="token punctuation">);</span> <span class="token comment">// "1pm"</span> <span class="token function">getMeridiemSuffixOfInteger</span><span class="token punctuation">(</span><span class="token number">13</span><span class="token punctuation">);</span> <span class="token comment">// "1pm"</span>

View File

@ -129,7 +129,10 @@ console<span class="token punctuation">.</span><span class="token function">log<
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="compose" class="section double-padded">compose</h3><div class="section double-padded"><p>Performs right-to-left function composition.</p><p>Use <code>Array.reduce()</code> to perform right-to-left function composition. The last (rightmost) function can accept one or more arguments; the remaining functions must be unary.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">compose</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>fns<span class="token punctuation">)</span> <span class="token operator">=></span> fns<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>f<span class="token punctuation">,</span> g<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">f</span><span class="token punctuation">(</span><span class="token function">g</span><span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)));</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="compose" class="section double-padded">compose</h3><div class="section double-padded"><p>Performs right-to-left function composition.</p><p>Use <code>Array.reduce()</code> to perform right-to-left function composition. The last (rightmost) function can accept one or more arguments; the remaining functions must be unary.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">compose</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>fns<span class="token punctuation">)</span> <span class="token operator">=></span> fns<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>f<span class="token punctuation">,</span> g<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">f</span><span class="token punctuation">(</span><span class="token function">g</span><span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)));</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">add5</span> <span class="token operator">=</span> x <span class="token operator">=></span> x <span class="token operator">+</span> <span class="token number">5</span><span class="token punctuation">;</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">add5</span> <span class="token operator">=</span> x <span class="token operator">=></span> x <span class="token operator">+</span> <span class="token number">5</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> <span class="token function-variable function">multiply</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> x <span class="token operator">*</span> y<span class="token punctuation">;</span> <span class="token keyword">const</span> <span class="token function-variable function">multiply</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> x <span class="token operator">*</span> y<span class="token punctuation">;</span>
<span class="token keyword">const</span> multiplyAndAdd5 <span class="token operator">=</span> <span class="token function">compose</span><span class="token punctuation">(</span>add5<span class="token punctuation">,</span> multiply<span class="token punctuation">);</span> <span class="token keyword">const</span> multiplyAndAdd5 <span class="token operator">=</span> <span class="token function">compose</span><span class="token punctuation">(</span>
add5<span class="token punctuation">,</span>
multiply
<span class="token punctuation">);</span>
<span class="token function">multiplyAndAdd5</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">// 15</span> <span class="token function">multiplyAndAdd5</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">// 15</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="composeright" class="section double-padded">composeRight</h3><div class="section double-padded"><p>Performs left-to-right function composition.</p><p>Use <code>Array.reduce()</code> to perform left-to-right function composition. The first (leftmost) function can accept one or more arguments; the remaining functions must be unary.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">composeRight</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>fns<span class="token punctuation">)</span> <span class="token operator">=></span> fns<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>f<span class="token punctuation">,</span> g<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">g</span><span class="token punctuation">(</span><span class="token function">f</span><span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)));</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="composeright" class="section double-padded">composeRight</h3><div class="section double-padded"><p>Performs left-to-right function composition.</p><p>Use <code>Array.reduce()</code> to perform left-to-right function composition. The first (leftmost) function can accept one or more arguments; the remaining functions must be unary.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">composeRight</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>fns<span class="token punctuation">)</span> <span class="token operator">=></span> fns<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">((</span>f<span class="token punctuation">,</span> g<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">g</span><span class="token punctuation">(</span><span class="token function">f</span><span class="token punctuation">(</span><span class="token operator">...</span>args<span class="token punctuation">)));</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">add</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> x <span class="token operator">+</span> y<span class="token punctuation">;</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">add</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> x <span class="token operator">+</span> y<span class="token punctuation">;</span>
@ -181,7 +184,7 @@ document<span class="token punctuation">.</span><span class="token function">que
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="hz" class="section double-padded">hz</h3><div class="section double-padded"><p>Returns the number of times a function executed per second. <code>hz</code> is the unit for <code>hertz</code>, the unit of frequency defined as one cycle per second.</p><p>Use <code>performance.now()</code> to get the difference in milliseconds before and after the iteration loop to calculate the time elapsed executing the function <code>iterations</code> times. Return the number of cycles per second by converting milliseconds to seconds and dividing it by the time elapsed. Omit the second argument, <code>iterations</code>, to use the default of 100 iterations.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">hz</span> <span class="token operator">=</span> <span class="token punctuation">(</span>fn<span class="token punctuation">,</span> iterations <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="hz" class="section double-padded">hz</h3><div class="section double-padded"><p>Returns the number of times a function executed per second. <code>hz</code> is the unit for <code>hertz</code>, the unit of frequency defined as one cycle per second.</p><p>Use <code>performance.now()</code> to get the difference in milliseconds before and after the iteration loop to calculate the time elapsed executing the function <code>iterations</code> times. Return the number of cycles per second by converting milliseconds to seconds and dividing it by the time elapsed. Omit the second argument, <code>iterations</code>, to use the default of 100 iterations.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">hz</span> <span class="token operator">=</span> <span class="token punctuation">(</span>fn<span class="token punctuation">,</span> iterations <span class="token operator">=</span> <span class="token number">100</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> before <span class="token operator">=</span> performance<span class="token punctuation">.</span><span class="token function">now</span><span class="token punctuation">();</span> <span class="token keyword">const</span> before <span class="token operator">=</span> performance<span class="token punctuation">.</span><span class="token function">now</span><span class="token punctuation">();</span>
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">let</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator">&lt;</span> iterations<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token function">fn</span><span class="token punctuation">();</span> <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">let</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator">&lt;</span> iterations<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token function">fn</span><span class="token punctuation">();</span>
<span class="token keyword">return</span> <span class="token number">1000</span> <span class="token operator">*</span> iterations <span class="token operator">/</span> <span class="token punctuation">(</span>performance<span class="token punctuation">.</span><span class="token function">now</span><span class="token punctuation">()</span> <span class="token operator">-</span> before<span class="token punctuation">); <span class="token keyword">return</span> <span class="token punctuation">(</span><span class="token number">1000</span> <span class="token operator">*</span> iterations<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token punctuation">(</span>performance<span class="token punctuation">.</span><span class="token function">now</span><span class="token punctuation">()</span> <span class="token operator">-</span> before<span class="token punctuation">);
};</span> };</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token comment">// 10,000 element array</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token comment">// 10,000 element array</span>
<span class="token keyword">const</span> numbers <span class="token operator">=</span> <span class="token function">Array</span><span class="token punctuation">(</span><span class="token number">10000</span><span class="token punctuation">) <span class="token keyword">const</span> numbers <span class="token operator">=</span> <span class="token function">Array</span><span class="token punctuation">(</span><span class="token number">10000</span><span class="token punctuation">)

View File

@ -103,7 +103,7 @@
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="clampnumber" class="section double-padded">clampNumber</h3><div class="section double-padded"><p>Clamps <code>num</code> within the inclusive range specified by the boundary values <code>a</code> and <code>b</code>.</p><p>If <code>num</code> falls within the range, return <code>num</code>. Otherwise, return the nearest number in the range.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">clampNumber</span> <span class="token operator">=</span> <span class="token punctuation">(</span>num<span class="token punctuation">,</span> a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token operator">=></span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>Math<span class="token punctuation">.</span><span class="token function">min</span><span class="token punctuation">(</span>num<span class="token punctuation">,</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)),</span> Math<span class="token punctuation">.</span><span class="token function">min</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">));</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="clampnumber" class="section double-padded">clampNumber</h3><div class="section double-padded"><p>Clamps <code>num</code> within the inclusive range specified by the boundary values <code>a</code> and <code>b</code>.</p><p>If <code>num</code> falls within the range, return <code>num</code>. Otherwise, return the nearest number in the range.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">clampNumber</span> <span class="token operator">=</span> <span class="token punctuation">(</span>num<span class="token punctuation">,</span> a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token operator">=></span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>Math<span class="token punctuation">.</span><span class="token function">min</span><span class="token punctuation">(</span>num<span class="token punctuation">,</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)),</span> Math<span class="token punctuation">.</span><span class="token function">min</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">));</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">clampNumber</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">5</span><span class="token punctuation">);</span> <span class="token comment">// 3</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">clampNumber</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">5</span><span class="token punctuation">);</span> <span class="token comment">// 3</span>
<span class="token function">clampNumber</span><span class="token punctuation">(</span><span class="token number">1</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 operator">-</span><span class="token number">5</span><span class="token punctuation">);</span> <span class="token comment">// -1</span> <span class="token function">clampNumber</span><span class="token punctuation">(</span><span class="token number">1</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 operator">-</span><span class="token number">5</span><span class="token punctuation">);</span> <span class="token comment">// -1</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="degreestorads" class="section double-padded">degreesToRads</h3><div class="section double-padded"><p>Converts an angle from degrees to radians.</p><p>Use <code>Math.PI</code> and the degree to radian formula to convert the angle from degrees to radians.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">degreesToRads</span> <span class="token operator">=</span> deg <span class="token operator">=></span> deg <span class="token operator">*</span> Math<span class="token punctuation">.</span><span class="token constant">PI</span> <span class="token operator">/</span> <span class="token number">180.0</span><span class="token punctuation">;</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="degreestorads" class="section double-padded">degreesToRads</h3><div class="section double-padded"><p>Converts an angle from degrees to radians.</p><p>Use <code>Math.PI</code> and the degree to radian formula to convert the angle from degrees to radians.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">degreesToRads</span> <span class="token operator">=</span> deg <span class="token operator">=></span> <span class="token punctuation">(</span>deg <span class="token operator">*</span> Math<span class="token punctuation">.</span><span class="token constant">PI</span><span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">180.0</span><span class="token punctuation">;</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">degreesToRads</span><span class="token punctuation">(</span><span class="token number">90.0</span><span class="token punctuation">);</span> <span class="token comment">// ~1.5708</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">degreesToRads</span><span class="token punctuation">(</span><span class="token number">90.0</span><span class="token punctuation">);</span> <span class="token comment">// ~1.5708</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="digitize" class="section double-padded">digitize</h3><div class="section double-padded"><p>Converts a number to an array of digits.</p><p>Convert the number to a string, using the spread operator (<code>...</code>) to build an array. Use <code>Array.map()</code> and <code>parseInt()</code> to transform each value to an integer.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">digitize</span> <span class="token operator">=</span> n <span class="token operator">=></span> <span class="token punctuation">[</span><span class="token operator">...</span><span class="token template-string"><span class="token string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>n<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span><span class="token punctuation">].</span><span class="token function">map</span><span class="token punctuation">(</span>i <span class="token operator">=></span> <span class="token function">parseInt</span><span class="token punctuation">(</span>i<span class="token punctuation">));</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="digitize" class="section double-padded">digitize</h3><div class="section double-padded"><p>Converts a number to an array of digits.</p><p>Convert the number to a string, using the spread operator (<code>...</code>) to build an array. Use <code>Array.map()</code> and <code>parseInt()</code> to transform each value to an integer.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">digitize</span> <span class="token operator">=</span> n <span class="token operator">=></span> <span class="token punctuation">[</span><span class="token operator">...</span><span class="token template-string"><span class="token string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>n<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span><span class="token punctuation">].</span><span class="token function">map</span><span class="token punctuation">(</span>i <span class="token operator">=></span> <span class="token function">parseInt</span><span class="token punctuation">(</span>i<span class="token punctuation">));</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">digitize</span><span class="token punctuation">(</span><span class="token number">123</span><span class="token punctuation">);</span> <span class="token comment">// [1, 2, 3]</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">digitize</span><span class="token punctuation">(</span><span class="token number">123</span><span class="token punctuation">);</span> <span class="token comment">// [1, 2, 3]</span>
@ -187,7 +187,7 @@ own individual rating by supplying it as the third argument.
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">isPrime</span><span class="token punctuation">(</span><span class="token number">11</span><span class="token punctuation">);</span> <span class="token comment">// true</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">isPrime</span><span class="token punctuation">(</span><span class="token number">11</span><span class="token punctuation">);</span> <span class="token comment">// true</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="lcm" class="section double-padded">lcm</h3><div class="section double-padded"><p>Returns the least common multiple of two or more numbers.</p><p>Use the greatest common divisor (GCD) formula and the fact that <code>lcm(x,y) = x * y / gcd(x,y)</code> to determine the least common multiple. The GCD formula uses recursion.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">lcm</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>arr<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="lcm" class="section double-padded">lcm</h3><div class="section double-padded"><p>Returns the least common multiple of two or more numbers.</p><p>Use the greatest common divisor (GCD) formula and the fact that <code>lcm(x,y) = x * y / gcd(x,y)</code> to determine the least common multiple. The GCD formula uses recursion.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">lcm</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token operator">...</span>arr<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> <span class="token function-variable function">gcd</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">!</span>y <span class="token operator">?</span> x <span class="token punctuation">:</span> <span class="token function">gcd</span><span class="token punctuation">(</span>y<span class="token punctuation">,</span> x <span class="token operator">%</span> y<span class="token punctuation">));</span> <span class="token keyword">const</span> <span class="token function-variable function">gcd</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token operator">!</span>y <span class="token operator">?</span> x <span class="token punctuation">:</span> <span class="token function">gcd</span><span class="token punctuation">(</span>y<span class="token punctuation">,</span> x <span class="token operator">%</span> y<span class="token punctuation">));</span>
<span class="token keyword">const</span> <span class="token function-variable function">_lcm</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> x <span class="token operator">*</span> y <span class="token operator">/</span> <span class="token function">gcd</span><span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">);</span> <span class="token keyword">const</span> <span class="token function-variable function">_lcm</span> <span class="token operator">=</span> <span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">(</span>x <span class="token operator">*</span> y<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token function">gcd</span><span class="token punctuation">(</span>x<span class="token punctuation">,</span> y<span class="token punctuation">);</span>
<span class="token keyword">return</span> <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>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">_lcm</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">)); <span class="token keyword">return</span> <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>a<span class="token punctuation">,</span> b<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">_lcm</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> b<span class="token punctuation">));
};</span> };</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">lcm</span><span class="token punctuation">(</span><span class="token number">12</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">);</span> <span class="token comment">// 84</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">lcm</span><span class="token punctuation">(</span><span class="token number">12</span><span class="token punctuation">,</span> <span class="token number">7</span><span class="token punctuation">);</span> <span class="token comment">// 84</span>
@ -198,7 +198,7 @@ own individual rating by supplying it as the third argument.
.</span><span class="token function">reverse</span><span class="token punctuation">() .</span><span class="token function">reverse</span><span class="token punctuation">()
.</span><span class="token function">map</span><span class="token punctuation">(</span>x <span class="token operator">=></span> <span class="token function">parseInt</span><span class="token punctuation">(</span>x<span class="token punctuation">));</span> .</span><span class="token function">map</span><span class="token punctuation">(</span>x <span class="token operator">=></span> <span class="token function">parseInt</span><span class="token punctuation">(</span>x<span class="token punctuation">));</span>
<span class="token keyword">let</span> lastDigit <span class="token operator">=</span> arr<span class="token punctuation">.</span><span class="token function">splice</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 number">0</span><span class="token punctuation">];</span> <span class="token keyword">let</span> lastDigit <span class="token operator">=</span> arr<span class="token punctuation">.</span><span class="token function">splice</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 number">0</span><span class="token punctuation">];</span>
<span class="token keyword">let</span> sum <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> 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 operator">%</span> <span class="token number">2</span> <span class="token operator">!==</span> <span class="token number">0</span> <span class="token operator">?</span> acc <span class="token operator">+</span> val <span class="token punctuation">:</span> acc <span class="token operator">+</span> <span class="token punctuation">(</span>val <span class="token operator">*</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token operator">%</span> <span class="token number">9</span> <span class="token operator">||</span> <span class="token number">9</span><span class="token punctuation">),</span> <span class="token number">0</span><span class="token punctuation">);</span> <span class="token keyword">let</span> sum <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> 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 operator">%</span> <span class="token number">2</span> <span class="token operator">!==</span> <span class="token number">0</span> <span class="token operator">?</span> acc <span class="token operator">+</span> val <span class="token punctuation">:</span> acc <span class="token operator">+</span> <span class="token punctuation">((</span>val <span class="token operator">*</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token operator">%</span> <span class="token number">9</span><span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token number">9</span><span class="token punctuation">),</span> <span class="token number">0</span><span class="token punctuation">);</span>
sum <span class="token operator">+=</span> lastDigit<span class="token punctuation">;</span> sum <span class="token operator">+=</span> lastDigit<span class="token punctuation">;</span>
<span class="token keyword">return</span> sum <span class="token operator">%</span> <span class="token number">10</span> <span class="token operator">===</span> <span class="token number">0</span><span class="token punctuation">; <span class="token keyword">return</span> sum <span class="token operator">%</span> <span class="token number">10</span> <span class="token operator">===</span> <span class="token number">0</span><span class="token punctuation">;
};</span> };</span>
@ -218,7 +218,7 @@ own individual rating by supplying it as the third argument.
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">minBy</span><span class="token punctuation">([{</span> n<span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">2</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">8</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">6</span> <span class="token punctuation">}],</span> o <span class="token operator">=></span> o<span class="token punctuation">.</span>n<span class="token punctuation">);</span> <span class="token comment">// 2</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">minBy</span><span class="token punctuation">([{</span> n<span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">2</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">8</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">6</span> <span class="token punctuation">}],</span> o <span class="token operator">=></span> o<span class="token punctuation">.</span>n<span class="token punctuation">);</span> <span class="token comment">// 2</span>
<span class="token function">minBy</span><span class="token punctuation">([{</span> n<span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">2</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">8</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">6</span> <span class="token punctuation">}],</span> <span class="token string">'n'</span><span class="token punctuation">);</span> <span class="token comment">// 2</span> <span class="token function">minBy</span><span class="token punctuation">([{</span> n<span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">2</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">8</span> <span class="token punctuation">}, {</span> n<span class="token punctuation">:</span> <span class="token number">6</span> <span class="token punctuation">}],</span> <span class="token string">'n'</span><span class="token punctuation">);</span> <span class="token comment">// 2</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="percentile" class="section double-padded">percentile</h3><div class="section double-padded"><p>Uses the percentile formula to calculate how many numbers in the given array are less or equal to the given value.</p><p>Use <code>Array.reduce()</code> to calculate how many numbers are below the value and how many are the same value and apply the percentile formula.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">percentile</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> val<span class="token punctuation">)</span> <span class="token operator">=></span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="percentile" class="section double-padded">percentile</h3><div class="section double-padded"><p>Uses the percentile formula to calculate how many numbers in the given array are less or equal to the given value.</p><p>Use <code>Array.reduce()</code> to calculate how many numbers are below the value and how many are the same value and apply the percentile formula.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">percentile</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> val<span class="token punctuation">)</span> <span class="token operator">=></span>
<span class="token number">100</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> v<span class="token punctuation">)</span> <span class="token operator">=></span> acc <span class="token operator">+</span> <span class="token punctuation">(</span>v <span class="token operator">&lt;</span> val <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 operator">+</span> <span class="token punctuation">(</span>v <span class="token operator">===</span> val <span class="token operator">?</span> <span class="token number">0.5</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> <span class="token operator">/</span> arr<span class="token punctuation">.</span>length<span class="token punctuation">;</span> <span class="token punctuation">(</span><span class="token number">100</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> v<span class="token punctuation">)</span> <span class="token operator">=></span> acc <span class="token operator">+</span> <span class="token punctuation">(</span>v <span class="token operator">&lt;</span> val <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 operator">+</span> <span class="token punctuation">(</span>v <span class="token operator">===</span> val <span class="token operator">?</span> <span class="token number">0.5</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> <span class="token operator">/</span> arr<span class="token punctuation">.</span>length<span class="token punctuation">;</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">percentile</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">9</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">],</span> <span class="token number">6</span><span class="token punctuation">);</span> <span class="token comment">// 55</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">percentile</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">9</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">],</span> <span class="token number">6</span><span class="token punctuation">);</span> <span class="token comment">// 55</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="powerset" class="section double-padded">powerset</h3><div class="section double-padded"><p>Returns the powerset of a given array of numbers.</p><p>Use <code>Array.reduce()</code> combined with <code>Array.map()</code> to iterate over elements and combine into an array containing all combinations.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">powerset</span> <span class="token operator">=</span> arr <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>a<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span>r <span class="token operator">=></span> <span class="token punctuation">[</span>v<span class="token punctuation">].</span><span class="token function">concat</span><span class="token punctuation">(</span>r<span class="token punctuation">))), [[]]);</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="powerset" class="section double-padded">powerset</h3><div class="section double-padded"><p>Returns the powerset of a given array of numbers.</p><p>Use <code>Array.reduce()</code> combined with <code>Array.map()</code> to iterate over elements and combine into an array containing all combinations.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">powerset</span> <span class="token operator">=</span> arr <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>a<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span>r <span class="token operator">=></span> <span class="token punctuation">[</span>v<span class="token punctuation">].</span><span class="token function">concat</span><span class="token punctuation">(</span>r<span class="token punctuation">))), [[]]);</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">powerset</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 comment">// [[], [1], [2], [2,1]]</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">powerset</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 comment">// [[], [1], [2], [2,1]]</span>
@ -230,7 +230,7 @@ own individual rating by supplying it as the third argument.
<span class="token keyword">return</span> arr<span class="token punctuation">; <span class="token keyword">return</span> arr<span class="token punctuation">;
};</span> };</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">primes</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">);</span> <span class="token comment">// [2,3,5,7]</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">primes</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">);</span> <span class="token comment">// [2,3,5,7]</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="radstodegrees" class="section double-padded">radsToDegrees</h3><div class="section double-padded"><p>Converts an angle from radians to degrees.</p><p>Use <code>Math.PI</code> and the radian to degree formula to convert the angle from radians to degrees.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">radsToDegrees</span> <span class="token operator">=</span> rad <span class="token operator">=></span> rad <span class="token operator">*</span> <span class="token number">180.0</span> <span class="token operator">/</span> Math<span class="token punctuation">.</span><span class="token constant">PI</span><span class="token punctuation">;</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="radstodegrees" class="section double-padded">radsToDegrees</h3><div class="section double-padded"><p>Converts an angle from radians to degrees.</p><p>Use <code>Math.PI</code> and the radian to degree formula to convert the angle from radians to degrees.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">radsToDegrees</span> <span class="token operator">=</span> rad <span class="token operator">=></span> <span class="token punctuation">(</span>rad <span class="token operator">*</span> <span class="token number">180.0</span><span class="token punctuation">)</span> <span class="token operator">/</span> Math<span class="token punctuation">.</span><span class="token constant">PI</span><span class="token punctuation">;</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">radsToDegrees</span><span class="token punctuation">(</span>Math<span class="token punctuation">.</span><span class="token constant">PI</span> <span class="token operator">/</span> <span class="token number">2</span><span class="token punctuation">);</span> <span class="token comment">// 90</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">radsToDegrees</span><span class="token punctuation">(</span>Math<span class="token punctuation">.</span><span class="token constant">PI</span> <span class="token operator">/</span> <span class="token number">2</span><span class="token punctuation">);</span> <span class="token comment">// 90</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="randomintarrayinrange" class="section double-padded">randomIntArrayInRange</h3><div class="section double-padded"><p>Returns an array of n random integers in the specified range.</p><p>Use <code>Array.from()</code> to create an empty array of the specific length, <code>Math.random()</code> to generate a random number and map it to the desired range, using <code>Math.floor()</code> to make it an integer.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">randomIntArrayInRange</span> <span class="token operator">=</span> <span class="token punctuation">(</span>min<span class="token punctuation">,</span> max<span class="token punctuation">,</span> n <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">=></span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="randomintarrayinrange" class="section double-padded">randomIntArrayInRange</h3><div class="section double-padded"><p>Returns an array of n random integers in the specified range.</p><p>Use <code>Array.from()</code> to create an empty array of the specific length, <code>Math.random()</code> to generate a random number and map it to the desired range, using <code>Math.floor()</code> to make it an integer.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">randomIntArrayInRange</span> <span class="token operator">=</span> <span class="token punctuation">(</span>min<span class="token punctuation">,</span> max<span class="token punctuation">,</span> n <span class="token operator">=</span> <span class="token number">1</span><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> length<span class="token punctuation">:</span> n <span class="token punctuation">}, ()</span> <span class="token operator">=></span> Math<span class="token punctuation">.</span><span class="token function">floor</span><span class="token punctuation">(</span>Math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">()</span> <span class="token operator">*</span> <span class="token punctuation">(</span>max <span class="token operator">-</span> min <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">))</span> <span class="token operator">+</span> min<span class="token punctuation">);</span> Array<span class="token punctuation">.</span><span class="token keyword">from</span><span class="token punctuation">({</span> length<span class="token punctuation">:</span> n <span class="token punctuation">}, ()</span> <span class="token operator">=></span> Math<span class="token punctuation">.</span><span class="token function">floor</span><span class="token punctuation">(</span>Math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">()</span> <span class="token operator">*</span> <span class="token punctuation">(</span>max <span class="token operator">-</span> min <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">))</span> <span class="token operator">+</span> min<span class="token punctuation">);</span>
@ -239,7 +239,7 @@ own individual rating by supplying it as the third argument.
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">randomIntegerInRange</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">);</span> <span class="token comment">// 2</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">randomIntegerInRange</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">5</span><span class="token punctuation">);</span> <span class="token comment">// 2</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="randomnumberinrange" class="section double-padded">randomNumberInRange</h3><div class="section double-padded"><p>Returns a random number in the specified range.</p><p>Use <code>Math.random()</code> to generate a random value, map it to the desired range using multiplication.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">randomNumberInRange</span> <span class="token operator">=</span> <span class="token punctuation">(</span>min<span class="token punctuation">,</span> max<span class="token punctuation">)</span> <span class="token operator">=></span> Math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">()</span> <span class="token operator">*</span> <span class="token punctuation">(</span>max <span class="token operator">-</span> min<span class="token punctuation">)</span> <span class="token operator">+</span> min<span class="token punctuation">;</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="randomnumberinrange" class="section double-padded">randomNumberInRange</h3><div class="section double-padded"><p>Returns a random number in the specified range.</p><p>Use <code>Math.random()</code> to generate a random value, map it to the desired range using multiplication.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">randomNumberInRange</span> <span class="token operator">=</span> <span class="token punctuation">(</span>min<span class="token punctuation">,</span> max<span class="token punctuation">)</span> <span class="token operator">=></span> Math<span class="token punctuation">.</span><span class="token function">random</span><span class="token punctuation">()</span> <span class="token operator">*</span> <span class="token punctuation">(</span>max <span class="token operator">-</span> min<span class="token punctuation">)</span> <span class="token operator">+</span> min<span class="token punctuation">;</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">randomNumberInRange</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">);</span> <span class="token comment">// 6.0211363285087005</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">randomNumberInRange</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">10</span><span class="token punctuation">);</span> <span class="token comment">// 6.0211363285087005</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="round" class="section double-padded">round</h3><div class="section double-padded"><p>Rounds a number to a specified amount of digits.</p><p>Use <code>Math.round()</code> and template literals to round the number to the specified number of digits. Omit the second argument, <code>decimals</code> to round to an integer.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">round</span> <span class="token operator">=</span> <span class="token punctuation">(</span>n<span class="token punctuation">,</span> decimals <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">Number</span><span class="token punctuation">(</span><span class="token template-string"><span class="token string">`${Math.round(`</span></span>$<span class="token punctuation">{</span>n<span class="token punctuation">}</span>e$<span class="token punctuation">{</span>decimals<span class="token punctuation">}</span><span class="token template-string"><span class="token string">`)}e-</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>decimals<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span><span class="token punctuation">);</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="round" class="section double-padded">round</h3><div class="section double-padded"><p>Rounds a number to a specified amount of digits.</p><p>Use <code>Math.round()</code> and template literals to round the number to the specified number of digits. Omit the second argument, <code>decimals</code> to round to an integer.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">round</span> <span class="token operator">=</span> <span class="token punctuation">(</span>n<span class="token punctuation">,</span> decimals <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token function">Number</span><span class="token punctuation">(</span><span class="token template-string"><span class="token string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>Math<span class="token punctuation">.</span><span class="token function">round</span><span class="token punctuation">(</span>`$<span class="token punctuation">{</span>n<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">e</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>decimals<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">`</span></span><span class="token punctuation">)}</span>e<span class="token operator">-</span>$<span class="token punctuation">{</span>decimals<span class="token punctuation">}</span>`<span class="token punctuation">);</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">round</span><span class="token punctuation">(</span><span class="token number">1.005</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">);</span> <span class="token comment">// 1.01</span> </pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">round</span><span class="token punctuation">(</span><span class="token number">1.005</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">);</span> <span class="token comment">// 1.01</span>
</pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="sdbm" class="section double-padded">sdbm</h3><div class="section double-padded"><p>Hashes the input string into a whole number.</p><p>Use <code>String.split('')</code> and <code>Array.reduce()</code> to create a hash of the input string, utilizing bit shifting.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">sdbm</span> <span class="token operator">=</span> str <span class="token operator">=></span> <span class="token punctuation">{</span> </pre><button class="primary clipboard-copy">&#128203;&nbsp;Copy to clipboard</button></div></div><div class="card fluid"><h3 id="sdbm" class="section double-padded">sdbm</h3><div class="section double-padded"><p>Hashes the input string into a whole number.</p><p>Use <code>String.split('')</code> and <code>Array.reduce()</code> to create a hash of the input string, utilizing bit shifting.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">sdbm</span> <span class="token operator">=</span> str <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">let</span> arr <span class="token operator">=</span> str<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">''</span><span class="token punctuation">);</span> <span class="token keyword">let</span> arr <span class="token operator">=</span> str<span class="token punctuation">.</span><span class="token function">split</span><span class="token punctuation">(</span><span class="token string">''</span><span class="token punctuation">);</span>

View File

@ -12,6 +12,9 @@ const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args)));
```js ```js
const add5 = x => x + 5; const add5 = x => x + 5;
const multiply = (x, y) => x * y; const multiply = (x, y) => x * y;
const multiplyAndAdd5 = compose(add5, multiply); const multiplyAndAdd5 = compose(
add5,
multiply
);
multiplyAndAdd5(5, 2); // 15 multiplyAndAdd5(5, 2); // 15
``` ```

View File

@ -5,7 +5,7 @@ Converts an angle from degrees to radians.
Use `Math.PI` and the degree to radian formula to convert the angle from degrees to radians. Use `Math.PI` and the degree to radian formula to convert the angle from degrees to radians.
```js ```js
const degreesToRads = deg => deg * Math.PI / 180.0; const degreesToRads = deg => (deg * Math.PI) / 180.0;
``` ```
```js ```js

View File

@ -11,8 +11,8 @@ const getMeridiemSuffixOfInteger = num =>
: num === 12 : num === 12
? 12 + 'pm' ? 12 + 'pm'
: num < 12 : num < 12
? num % 12 + 'am' ? (num % 12) + 'am'
: num % 12 + 'pm'; : (num % 12) + 'pm';
``` ```
```js ```js

View File

@ -11,7 +11,7 @@ Omit the second argument, `iterations`, to use the default of 100 iterations.
const hz = (fn, iterations = 100) => { const hz = (fn, iterations = 100) => {
const before = performance.now(); const before = performance.now();
for (let i = 0; i < iterations; i++) fn(); for (let i = 0; i < iterations; i++) fn();
return 1000 * iterations / (performance.now() - before); return (1000 * iterations) / (performance.now() - before);
}; };
``` ```

View File

@ -8,7 +8,7 @@ The GCD formula uses recursion.
```js ```js
const lcm = (...arr) => { const lcm = (...arr) => {
const gcd = (x, y) => (!y ? x : gcd(y, x % y)); const gcd = (x, y) => (!y ? x : gcd(y, x % y));
const _lcm = (x, y) => x * y / gcd(x, y); const _lcm = (x, y) => (x * y) / gcd(x, y);
return [...arr].reduce((a, b) => _lcm(a, b)); return [...arr].reduce((a, b) => _lcm(a, b));
}; };
``` ```

View File

@ -15,7 +15,7 @@ const luhnCheck = num => {
.reverse() .reverse()
.map(x => parseInt(x)); .map(x => parseInt(x));
let lastDigit = arr.splice(0, 1)[0]; let lastDigit = arr.splice(0, 1)[0];
let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + (val * 2) % 9 || 9), 0); let sum = arr.reduce((acc, val, i) => (i % 2 !== 0 ? acc + val : acc + ((val * 2) % 9) || 9), 0);
sum += lastDigit; sum += lastDigit;
return sum % 10 === 0; return sum % 10 === 0;
}; };

View File

@ -6,7 +6,7 @@ Use `Array.reduce()` to calculate how many numbers are below the value and how m
```js ```js
const percentile = (arr, val) => const percentile = (arr, val) =>
100 * arr.reduce((acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0) / arr.length; (100 * arr.reduce((acc, v) => acc + (v < val ? 1 : 0) + (v === val ? 0.5 : 0), 0)) / arr.length;
``` ```
```js ```js

View File

@ -5,7 +5,7 @@ Converts an angle from radians to degrees.
Use `Math.PI` and the radian to degree formula to convert the angle from radians to degrees. Use `Math.PI` and the radian to degree formula to convert the angle from radians to degrees.
```js ```js
const radsToDegrees = rad => rad * 180.0 / Math.PI; const radsToDegrees = rad => (rad * 180.0) / Math.PI;
``` ```
```js ```js