Travis build: 1746

This commit is contained in:
30secondsofcode
2018-02-26 12:11:09 +00:00
parent 93355c4b97
commit b789929fd1
2 changed files with 7 additions and 6 deletions

View File

@ -2339,16 +2339,17 @@ sortedLastIndex([10, 20, 30, 30, 40], 30); // 3
Returns the highest index at which value should be inserted into array in order to maintain its sort order, based on a provided iterator function.
Check if the array is sorted in descending order (loosely).
Use `Array.reverse()` and `Array.findIndex()` to find the appropriate last index where the element should be inserted, based on the iterator function `fn`..
Use `Array.map()` to apply the iterator function to all elements of the array.
Use `Array.reverse()` and `Array.findIndex()` to find the appropriate last index where the element should be inserted, based on the provided iterator function.
```js
const sortedLastIndexBy = (arr, n, fn) => {
const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
const val = fn(n);
const index = arr
.map((val, i) => [i, fn(val)])
.map(fn)
.reverse()
.findIndex(el => (isDescending ? val <= el[1] : val >= el[1]));
.findIndex(el => (isDescending ? val <= el : val >= el));
return index === -1 ? 0 : arr.length - index;
};
```

View File

@ -470,13 +470,13 @@ Object<span class="token punctuation">.</span><span class="token function">assig
<span class="token keyword">return</span> index <span class="token operator">=== -</span><span class="token number">1</span> <span class="token operator">?</span> <span class="token number">0</span> <span class="token punctuation">:</span> arr<span class="token punctuation">.</span>length <span class="token operator">-</span> index <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">;
};</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">sortedLastIndex</span><span class="token punctuation">([</span><span class="token number">10</span><span class="token punctuation">,</span> <span class="token number">20</span><span class="token punctuation">,</span> <span class="token number">30</span><span class="token punctuation">,</span> <span class="token number">30</span><span class="token punctuation">,</span> <span class="token number">40</span><span class="token punctuation">],</span> <span class="token number">30</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 class="card fluid"><h3 id="sortedlastindexby" class="section double-padded">sortedLastIndexBy</h3><div class="section double-padded"><p>Returns the highest index at which value should be inserted into array in order to maintain its sort order, based on a provided iterator function.</p><p>Check if the array is sorted in descending order (loosely). Use <code>Array.reverse()</code> and <code>Array.findIndex()</code> to find the appropriate last index where the element should be inserted, based on the iterator function <code>fn</code>..</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">sortedLastIndexBy</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> n<span class="token punctuation">,</span> fn<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="sortedlastindexby" class="section double-padded">sortedLastIndexBy</h3><div class="section double-padded"><p>Returns the highest index at which value should be inserted into array in order to maintain its sort order, based on a provided iterator function.</p><p>Check if the array is sorted in descending order (loosely). Use <code>Array.map()</code> to apply the iterator function to all elements of the array. Use <code>Array.reverse()</code> and <code>Array.findIndex()</code> to find the appropriate last index where the element should be inserted, based on the provided iterator function.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">sortedLastIndexBy</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> n<span class="token punctuation">,</span> fn<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> isDescending <span class="token operator">=</span> <span class="token function">fn</span><span class="token punctuation">(</span>arr<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">])</span> <span class="token operator">></span> <span class="token function">fn</span><span class="token punctuation">(</span>arr<span class="token punctuation">[</span>arr<span class="token punctuation">.</span>length <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">]);</span>
<span class="token keyword">const</span> val <span class="token operator">=</span> <span class="token function">fn</span><span class="token punctuation">(</span>n<span class="token punctuation">);</span>
<span class="token keyword">const</span> index <span class="token operator">=</span> arr
<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">((</span>val<span class="token punctuation">,</span> i<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">[</span>i<span class="token punctuation">,</span> <span class="token function">fn</span><span class="token punctuation">(</span>val<span class="token punctuation">)])
<span class="token punctuation">.</span><span class="token function">map</span><span class="token punctuation">(</span>fn<span class="token punctuation">)
.</span><span class="token function">reverse</span><span class="token punctuation">()
.</span><span class="token function">findIndex</span><span class="token punctuation">(</span>el <span class="token operator">=></span> <span class="token punctuation">(</span>isDescending <span class="token operator">?</span> val <span class="token operator">&lt;=</span> el<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">] :</span> val <span class="token operator">>=</span> el<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]));</span>
.</span><span class="token function">findIndex</span><span class="token punctuation">(</span>el <span class="token operator">=></span> <span class="token punctuation">(</span>isDescending <span class="token operator">?</span> val <span class="token operator">&lt;=</span> el <span class="token punctuation">:</span> val <span class="token operator">>=</span> el<span class="token punctuation">));</span>
<span class="token keyword">return</span> index <span class="token operator">=== -</span><span class="token number">1</span> <span class="token operator">?</span> <span class="token number">0</span> <span class="token punctuation">:</span> arr<span class="token punctuation">.</span>length <span class="token operator">-</span> index<span class="token punctuation">;
};</span>
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">sortedLastIndexBy</span><span class="token punctuation">([{</span> x<span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">}, {</span> x<span class="token punctuation">:</span> <span class="token number">5</span> <span class="token punctuation">}], {</span> x<span class="token punctuation">:</span> <span class="token number">4</span> <span class="token punctuation">},</span> o <span class="token operator">=></span> o<span class="token punctuation">.</span>x<span class="token punctuation">);</span> <span class="token comment">// 1</span>