Travis build: 1746
This commit is contained in:
@ -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;
|
||||
};
|
||||
```
|
||||
|
||||
@ -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">📋 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">📋 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"><=</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"><=</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>
|
||||
|
||||
Reference in New Issue
Block a user