Travis build: 659
This commit is contained in:
33
README.md
33
README.md
@ -550,11 +550,11 @@ const call = (key, ...args) => context => context[key](...args);
|
||||
```js
|
||||
Promise.resolve([1, 2, 3])
|
||||
.then(call('map', x => 2 * x))
|
||||
.then(console.log); //[ 2, 4, 6 ]
|
||||
.then(console.log); // [ 2, 4, 6 ]
|
||||
const map = call.bind(null, 'map');
|
||||
Promise.resolve([1, 2, 3])
|
||||
.then(map(x => 2 * x))
|
||||
.then(console.log); //[ 2, 4, 6 ]
|
||||
.then(console.log); // [ 2, 4, 6 ]
|
||||
```
|
||||
|
||||
</details>
|
||||
@ -681,7 +681,7 @@ const sum = pipeAsyncFunctions(
|
||||
x => x + 3,
|
||||
async x => (await x) + 4
|
||||
);
|
||||
(async () => {
|
||||
(async() => {
|
||||
console.log(await sum(5)); // 15 (after one second)
|
||||
})();
|
||||
```
|
||||
@ -3033,8 +3033,8 @@ const unzip = arr =>
|
||||
<summary>Examples</summary>
|
||||
|
||||
```js
|
||||
unzip([['a', 1, true], ['b', 2, false]]); //[['a', 'b'], [1, 2], [true, false]]
|
||||
unzip([['a', 1, true], ['b', 2]]); //[['a', 'b'], [1, 2], [true]]
|
||||
unzip([['a', 1, true], ['b', 2, false]]); // [['a', 'b'], [1, 2], [true, false]]
|
||||
unzip([['a', 1, true], ['b', 2]]); // [['a', 'b'], [1, 2], [true]]
|
||||
```
|
||||
|
||||
</details>
|
||||
@ -4036,11 +4036,9 @@ const runAsync = fn => {
|
||||
const longRunningFunction = () => {
|
||||
let result = 0;
|
||||
for (let i = 0; i < 1000; i++) {
|
||||
for (let j = 0; j < 700; j++) {
|
||||
for (let k = 0; k < 300; k++) {
|
||||
result = result + i + j + k;
|
||||
}
|
||||
}
|
||||
for (let j = 0; j < 700; j++)
|
||||
for (let k = 0; k < 300; k++) result = result + i + j + k;
|
||||
|
||||
}
|
||||
return result;
|
||||
};
|
||||
@ -4794,7 +4792,7 @@ defer(console.log, 'a'), console.log('b'); // logs 'b' then 'a'
|
||||
|
||||
// Example B:
|
||||
document.querySelector('#someElement').innerHTML = 'Hello';
|
||||
longRunningFunction(); //Browser will not update the HTML until this has finished
|
||||
longRunningFunction(); // Browser will not update the HTML until this has finished
|
||||
defer(longRunningFunction); // Browser will update the HTML then run the function
|
||||
```
|
||||
|
||||
@ -5443,9 +5441,8 @@ const elo = ([...ratings], kFactor = 32, selfRating) => {
|
||||
const expectedScore = (self, opponent) => 1 / (1 + 10 ** ((opponent - self) / 400));
|
||||
const newRating = (rating, i) =>
|
||||
(selfRating || rating) + kFactor * (i - expectedScore(i ? a : b, i ? b : a));
|
||||
if (ratings.length === 2) {
|
||||
return [newRating(a, 1), newRating(b, 0)];
|
||||
}
|
||||
if (ratings.length === 2) return [newRating(a, 1), newRating(b, 0)];
|
||||
|
||||
for (let i = 0, len = ratings.length; i < len; i++) {
|
||||
let j = i;
|
||||
while (j < len - 1) {
|
||||
@ -6142,8 +6139,8 @@ const sumPower = (end, power = 2, start = 1) =>
|
||||
|
||||
```js
|
||||
sumPower(10); // 385
|
||||
sumPower(10, 3); //3025
|
||||
sumPower(10, 3, 5); //2925
|
||||
sumPower(10, 3); // 3025
|
||||
sumPower(10, 3, 5); // 2925
|
||||
```
|
||||
|
||||
</details>
|
||||
@ -6638,7 +6635,7 @@ Calls `Object.freeze(obj)` recursively on all unfrozen properties of passed obje
|
||||
const deepFreeze = obj =>
|
||||
Object.keys(obj).forEach(
|
||||
prop =>
|
||||
!obj[prop] instanceof Object || Object.isFrozen(obj[prop]) ? null : deepFreeze(obj[prop])
|
||||
!(obj[prop] instanceof Object) || Object.isFrozen(obj[prop]) ? null : deepFreeze(obj[prop])
|
||||
) || Object.freeze(obj);
|
||||
```
|
||||
|
||||
@ -9099,7 +9096,7 @@ Logs: {
|
||||
*/
|
||||
httpPost(
|
||||
'https://jsonplaceholder.typicode.com/posts',
|
||||
null, //does not send a body
|
||||
null, // does not send a body
|
||||
console.log
|
||||
); /*
|
||||
Logs: {
|
||||
|
||||
@ -97,11 +97,11 @@
|
||||
</pre></div><div class="card code-card"><div class="corner intermediate"></div><div class="section card-content"><h4 id="call">call</h4><p>Given a key and a set of arguments, call them when given a context. Primarily useful in composition.</p><p>Use a closure to call a stored key with stored arguments.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">call</span> <span class="token operator">=</span> <span class="token punctuation">(</span>key<span class="token punctuation">,</span> <span class="token operator">...</span>args<span class="token punctuation">)</span> <span class="token operator">=></span> context <span class="token operator">=></span> context<span class="token punctuation">[</span>key<span class="token punctuation">](</span><span class="token operator">...</span>args<span class="token punctuation">);</span>
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js">Promise<span class="token punctuation">.</span><span class="token function">resolve</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 function">then</span><span class="token punctuation">(</span><span class="token function">call</span><span class="token punctuation">(</span><span class="token string">'map'</span><span class="token punctuation">,</span> x <span class="token operator">=></span> <span class="token number">2</span> <span class="token operator">*</span> x<span class="token punctuation">))
|
||||
.</span><span class="token function">then</span><span class="token punctuation">(</span>console<span class="token punctuation">.</span>log<span class="token punctuation">);</span> <span class="token comment">//[ 2, 4, 6 ]</span>
|
||||
.</span><span class="token function">then</span><span class="token punctuation">(</span>console<span class="token punctuation">.</span>log<span class="token punctuation">);</span> <span class="token comment">// [ 2, 4, 6 ]</span>
|
||||
<span class="token keyword">const</span> map <span class="token operator">=</span> call<span class="token punctuation">.</span><span class="token function">bind</span><span class="token punctuation">(</span><span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token string">'map'</span><span class="token punctuation">);</span>
|
||||
Promise<span class="token punctuation">.</span><span class="token function">resolve</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 function">then</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 number">2</span> <span class="token operator">*</span> x<span class="token punctuation">))
|
||||
.</span><span class="token function">then</span><span class="token punctuation">(</span>console<span class="token punctuation">.</span>log<span class="token punctuation">);</span> <span class="token comment">//[ 2, 4, 6 ]</span>
|
||||
.</span><span class="token function">then</span><span class="token punctuation">(</span>console<span class="token punctuation">.</span>log<span class="token punctuation">);</span> <span class="token comment">// [ 2, 4, 6 ]</span>
|
||||
</pre></div><div class="card code-card"><div class="corner intermediate"></div><div class="section card-content"><h4 id="collectinto">collectInto</h4><p>Changes a function that accepts an array into a variadic function.</p><p>Given a function, return a closure that collects all inputs into an array-accepting function.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">collectInto</span> <span class="token operator">=</span> fn <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">fn</span><span class="token punctuation">(</span>args<span class="token punctuation">);</span>
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token keyword">const</span> Pall <span class="token operator">=</span> <span class="token function">collectInto</span><span class="token punctuation">(</span>Promise<span class="token punctuation">.</span>all<span class="token punctuation">.</span><span class="token function">bind</span><span class="token punctuation">(</span>Promise<span class="token punctuation">));</span>
|
||||
<span class="token keyword">let</span> p1 <span class="token operator">=</span> Promise<span class="token punctuation">.</span><span class="token function">resolve</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">);</span>
|
||||
@ -131,7 +131,7 @@ Object<span class="token punctuation">.</span><span class="token function">assig
|
||||
x <span class="token operator">=></span> x <span class="token operator">+</span> <span class="token number">3</span><span class="token punctuation">,</span>
|
||||
<span class="token keyword">async</span> x <span class="token operator">=></span> <span class="token punctuation">(</span><span class="token keyword">await</span> x<span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token number">4</span>
|
||||
<span class="token punctuation">);
|
||||
(</span><span class="token keyword">async</span> <span class="token punctuation">()</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
|
||||
(</span><span class="token keyword">async</span><span class="token punctuation">()</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
|
||||
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token keyword">await</span> <span class="token function">sum</span><span class="token punctuation">(</span><span class="token number">5</span><span class="token punctuation">));</span> <span class="token comment">// 15 (after one second)</span>
|
||||
<span class="token punctuation">})();</span>
|
||||
</pre></div><div class="card code-card"><div class="corner intermediate"></div><div class="section card-content"><h4 id="pipefunctions">pipeFunctions</h4><p>Performs left-to-right function composition.</p><p>Use <code>Array.prototype.reduce()</code> with the spread operator (<code>...</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></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">pipeFunctions</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>
|
||||
|
||||
@ -336,11 +336,9 @@ recorder<span class="token punctuation">.</span><span class="token function">sta
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token keyword">const</span> <span class="token function-variable function">longRunningFunction</span> <span class="token operator">=</span> <span class="token punctuation">()</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
|
||||
<span class="token keyword">let</span> result <span class="token operator">=</span> <span class="token number">0</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"><</span> <span class="token number">1000</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">) {</span>
|
||||
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">let</span> j <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> j <span class="token operator"><</span> <span class="token number">700</span><span class="token punctuation">;</span> j<span class="token operator">++</span><span class="token punctuation">) {</span>
|
||||
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">let</span> k <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> k <span class="token operator"><</span> <span class="token number">300</span><span class="token punctuation">;</span> k<span class="token operator">++</span><span class="token punctuation">) {</span>
|
||||
result <span class="token operator">=</span> result <span class="token operator">+</span> i <span class="token operator">+</span> j <span class="token operator">+</span> k<span class="token punctuation">;
|
||||
}
|
||||
}
|
||||
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">let</span> j <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> j <span class="token operator"><</span> <span class="token number">700</span><span class="token punctuation">;</span> j<span class="token operator">++</span><span class="token punctuation">)</span>
|
||||
<span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">let</span> k <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> k <span class="token operator"><</span> <span class="token number">300</span><span class="token punctuation">;</span> k<span class="token operator">++</span><span class="token punctuation">)</span> result <span class="token operator">=</span> result <span class="token operator">+</span> i <span class="token operator">+</span> j <span class="token operator">+</span> k<span class="token punctuation">;
|
||||
|
||||
}</span>
|
||||
<span class="token keyword">return</span> result<span class="token punctuation">;
|
||||
};</span>
|
||||
|
||||
@ -176,7 +176,7 @@ console<span class="token punctuation">.</span><span class="token function">log<
|
||||
|
||||
<span class="token comment">// Example B:</span>
|
||||
document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'#someElement'</span><span class="token punctuation">).</span>innerHTML <span class="token operator">=</span> <span class="token string">'Hello'</span><span class="token punctuation">;</span>
|
||||
<span class="token function">longRunningFunction</span><span class="token punctuation">();</span> <span class="token comment">//Browser will not update the HTML until this has finished</span>
|
||||
<span class="token function">longRunningFunction</span><span class="token punctuation">();</span> <span class="token comment">// Browser will not update the HTML until this has finished</span>
|
||||
<span class="token function">defer</span><span class="token punctuation">(</span>longRunningFunction<span class="token punctuation">);</span> <span class="token comment">// Browser will update the HTML then run the function</span>
|
||||
</pre></div><div class="card code-card"><div class="corner intermediate"></div><div class="section card-content"><h4 id="delay">delay</h4><p>Invokes the provided function after <code>wait</code> milliseconds.</p><p>Use <code>setTimeout()</code> to delay execution of <code>fn</code>. Use the spread (<code>...</code>) operator to supply the function with an arbitrary number of arguments.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">delay</span> <span class="token operator">=</span> <span class="token punctuation">(</span>fn<span class="token punctuation">,</span> wait<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">setTimeout</span><span class="token punctuation">(</span>fn<span class="token punctuation">,</span> wait<span class="token punctuation">,</span> <span class="token operator">...</span>args<span class="token punctuation">);</span>
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">delay</span><span class="token punctuation">(</span>
|
||||
|
||||
@ -594,8 +594,8 @@ managers<span class="token punctuation">;</span> <span class="token comment">//
|
||||
length<span class="token punctuation">:</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span><span class="token operator">...</span>arr<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span>x <span class="token operator">=></span> x<span class="token punctuation">.</span>length<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 punctuation">[])
|
||||
);</span>
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">unzip</span><span class="token punctuation">([[</span><span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">], [</span><span class="token string">'b'</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">]]);</span> <span class="token comment">//[['a', 'b'], [1, 2], [true, false]]</span>
|
||||
<span class="token function">unzip</span><span class="token punctuation">([[</span><span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">], [</span><span class="token string">'b'</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">]]);</span> <span class="token comment">//[['a', 'b'], [1, 2], [true]]</span>
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">unzip</span><span class="token punctuation">([[</span><span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">], [</span><span class="token string">'b'</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">]]);</span> <span class="token comment">// [['a', 'b'], [1, 2], [true, false]]</span>
|
||||
<span class="token function">unzip</span><span class="token punctuation">([[</span><span class="token string">'a'</span><span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">], [</span><span class="token string">'b'</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">]]);</span> <span class="token comment">// [['a', 'b'], [1, 2], [true]]</span>
|
||||
</pre></div><div class="card code-card"><div class="corner advanced"></div><div class="section card-content"><h4 id="unzipwith">unzipWith</h4><p>Creates an array of elements, ungrouping the elements in an array produced by <a href="#zip">zip</a> and applying the provided function.</p><p>Use <code>Math.max.apply()</code> to get the longest subarray in the array, <code>Array.prototype.map()</code> to make each element an array. Use <code>Array.prototype.reduce()</code> and <code>Array.prototype.forEach()</code> to map grouped values to individual arrays. Use <code>Array.prototype.map()</code> and the spread operator (<code>...</code>) to apply <code>fn</code> to each individual group of elements.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">unzipWith</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span>
|
||||
arr
|
||||
<span class="token punctuation">.</span><span class="token function">reduce</span><span class="token punctuation">(
|
||||
|
||||
@ -126,9 +126,8 @@
|
||||
<span class="token keyword">const</span> <span class="token function-variable function">expectedScore</span> <span class="token operator">=</span> <span class="token punctuation">(</span>self<span class="token punctuation">,</span> opponent<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token number">1</span> <span class="token operator">/</span> <span class="token punctuation">(</span><span class="token number">1</span> <span class="token operator">+</span> <span class="token number">10</span> <span class="token operator">**</span> <span class="token punctuation">((</span>opponent <span class="token operator">-</span> self<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">400</span><span class="token punctuation">));</span>
|
||||
<span class="token keyword">const</span> <span class="token function-variable function">newRating</span> <span class="token operator">=</span> <span class="token punctuation">(</span>rating<span class="token punctuation">,</span> i<span class="token punctuation">)</span> <span class="token operator">=></span>
|
||||
<span class="token punctuation">(</span>selfRating <span class="token operator">||</span> rating<span class="token punctuation">)</span> <span class="token operator">+</span> kFactor <span class="token operator">*</span> <span class="token punctuation">(</span>i <span class="token operator">-</span> <span class="token function">expectedScore</span><span class="token punctuation">(</span>i <span class="token operator">?</span> a <span class="token punctuation">:</span> b<span class="token punctuation">,</span> i <span class="token operator">?</span> b <span class="token punctuation">:</span> a<span class="token punctuation">));</span>
|
||||
<span class="token keyword">if</span> <span class="token punctuation">(</span>ratings<span class="token punctuation">.</span>length <span class="token operator">===</span> <span class="token number">2</span><span class="token punctuation">) {</span>
|
||||
<span class="token keyword">return</span> <span class="token punctuation">[</span><span class="token function">newRating</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">),</span> <span class="token function">newRating</span><span class="token punctuation">(</span>b<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)];
|
||||
}</span>
|
||||
<span class="token keyword">if</span> <span class="token punctuation">(</span>ratings<span class="token punctuation">.</span>length <span class="token operator">===</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token keyword">return</span> <span class="token punctuation">[</span><span class="token function">newRating</span><span class="token punctuation">(</span>a<span class="token punctuation">,</span> <span class="token number">1</span><span class="token punctuation">),</span> <span class="token function">newRating</span><span class="token punctuation">(</span>b<span class="token punctuation">,</span> <span class="token number">0</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> len <span class="token operator">=</span> ratings<span class="token punctuation">.</span>length<span class="token punctuation">;</span> i <span class="token operator"><</span> len<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">) {</span>
|
||||
<span class="token keyword">let</span> j <span class="token operator">=</span> i<span class="token punctuation">;</span>
|
||||
<span class="token keyword">while</span> <span class="token punctuation">(</span>j <span class="token operator"><</span> len <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">) {</span>
|
||||
@ -282,8 +281,8 @@ own individual rating by supplying it as the third argument.
|
||||
.</span><span class="token function">map</span><span class="token punctuation">((</span>x<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> start<span class="token punctuation">)</span> <span class="token operator">**</span> power<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> a <span class="token operator">+</span> b<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">);</span>
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">sumPower</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">);</span> <span class="token comment">// 385</span>
|
||||
<span class="token function">sumPower</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">);</span> <span class="token comment">//3025</span>
|
||||
<span class="token function">sumPower</span><span class="token punctuation">(</span><span class="token number">10</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">//2925</span>
|
||||
<span class="token function">sumPower</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">);</span> <span class="token comment">// 3025</span>
|
||||
<span class="token function">sumPower</span><span class="token punctuation">(</span><span class="token number">10</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">// 2925</span>
|
||||
</pre></div><div class="card code-card"><div class="corner beginner"></div><div class="section card-content"><h4 id="tosafeinteger">toSafeInteger</h4><p>Converts a value to a safe integer.</p><p>Use <code>Math.max()</code> and <code>Math.min()</code> to find the closest safe value. Use <code>Math.round()</code> to convert to an integer.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">toSafeInteger</span> <span class="token operator">=</span> num <span class="token operator">=></span>
|
||||
Math<span class="token punctuation">.</span><span class="token function">round</span><span class="token punctuation">(</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> Number<span class="token punctuation">.</span><span class="token constant">MAX_SAFE_INTEGER</span><span class="token punctuation">),</span> Number<span class="token punctuation">.</span><span class="token constant">MIN_SAFE_INTEGER</span><span class="token punctuation">));</span>
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token function">toSafeInteger</span><span class="token punctuation">(</span><span class="token string">'3.2'</span><span class="token punctuation">);</span> <span class="token comment">// 3</span>
|
||||
|
||||
@ -120,7 +120,7 @@
|
||||
</pre></div><div class="card code-card"><div class="corner intermediate"></div><div class="section card-content"><h4 id="deepfreeze">deepFreeze</h4><p>Deep freezes an object.</p><p>Calls <code>Object.freeze(obj)</code> recursively on all unfrozen properties of passed object that are <code>instanceof</code> object.</p></div><div class="copy-button-container"><button class="copy-button" aria-label="Copy to clipboard"></button></div><pre class="section card-code language-js"><span class="token keyword">const</span> <span class="token function-variable function">deepFreeze</span> <span class="token operator">=</span> obj <span class="token operator">=></span>
|
||||
Object<span class="token punctuation">.</span><span class="token function">keys</span><span class="token punctuation">(</span>obj<span class="token punctuation">).</span><span class="token function">forEach</span><span class="token punctuation">(</span>
|
||||
prop <span class="token operator">=>
|
||||
!</span>obj<span class="token punctuation">[</span>prop<span class="token punctuation">]</span> <span class="token keyword">instanceof</span> <span class="token class-name">Object</span> <span class="token operator">||</span> Object<span class="token punctuation">.</span><span class="token function">isFrozen</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>prop<span class="token punctuation">])</span> <span class="token operator">?</span> <span class="token keyword">null</span> <span class="token punctuation">:</span> <span class="token function">deepFreeze</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>prop<span class="token punctuation">])
|
||||
!</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>prop<span class="token punctuation">]</span> <span class="token keyword">instanceof</span> <span class="token class-name">Object</span><span class="token punctuation">)</span> <span class="token operator">||</span> Object<span class="token punctuation">.</span><span class="token function">isFrozen</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>prop<span class="token punctuation">])</span> <span class="token operator">?</span> <span class="token keyword">null</span> <span class="token punctuation">:</span> <span class="token function">deepFreeze</span><span class="token punctuation">(</span>obj<span class="token punctuation">[</span>prop<span class="token punctuation">])
|
||||
)</span> <span class="token operator">||</span> Object<span class="token punctuation">.</span><span class="token function">freeze</span><span class="token punctuation">(</span>obj<span class="token punctuation">);</span>
|
||||
</pre><label class="collapse">examples</label><pre class="section card-examples language-js"><span class="token string">'use strict'</span><span class="token punctuation">;</span>
|
||||
|
||||
|
||||
@ -187,7 +187,7 @@ Logs: {
|
||||
*/</span>
|
||||
<span class="token function">httpPost</span><span class="token punctuation">(</span>
|
||||
<span class="token string">'https://jsonplaceholder.typicode.com/posts'</span><span class="token punctuation">,</span>
|
||||
<span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token comment">//does not send a body</span>
|
||||
<span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token comment">// does not send a body</span>
|
||||
console<span class="token punctuation">.</span>log
|
||||
<span class="token punctuation">);</span> <span class="token comment">/*
|
||||
Logs: {
|
||||
|
||||
@ -15,8 +15,7 @@ const elo = ([...ratings], kFactor = 32, selfRating) => {
|
||||
const expectedScore = (self, opponent) => 1 / (1 + 10 ** ((opponent - self) / 400));
|
||||
const newRating = (rating, i) =>
|
||||
(selfRating || rating) + kFactor * (i - expectedScore(i ? a : b, i ? b : a));
|
||||
if (ratings.length === 2)
|
||||
return [newRating(a, 1), newRating(b, 0)];
|
||||
if (ratings.length === 2) return [newRating(a, 1), newRating(b, 0)];
|
||||
|
||||
for (let i = 0, len = ratings.length; i < len; i++) {
|
||||
let j = i;
|
||||
|
||||
@ -28,12 +28,10 @@ const runAsync = fn => {
|
||||
const longRunningFunction = () => {
|
||||
let result = 0;
|
||||
for (let i = 0; i < 1000; i++) {
|
||||
for (let j = 0; j < 700; j++) {
|
||||
for (let k = 0; k < 300; k++)
|
||||
result = result + i + j + k;
|
||||
for (let j = 0; j < 700; j++)
|
||||
for (let k = 0; k < 300; k++) result = result + i + j + k;
|
||||
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user