Travis build: 1744
This commit is contained in:
@ -2312,16 +2312,12 @@ sortedIndexBy([{ x: 4 }, { x: 5 }], { x: 4 }, o => o.x); // 0
|
||||
Returns the highest index at which value should be inserted into array in order to maintain its sort order.
|
||||
|
||||
Check if the array is sorted in descending order (loosely).
|
||||
Use `Array.map()` to map each element to an array with its index and value.
|
||||
Use `Array.reverse()` and `Array.findIndex()` to find the appropriate last index where the element should be inserted.
|
||||
|
||||
```js
|
||||
const sortedLastIndex = (arr, n) => {
|
||||
const isDescending = arr[0] > arr[arr.length - 1];
|
||||
const index = arr
|
||||
.map((val, i) => [i, val])
|
||||
.reverse()
|
||||
.findIndex(el => (isDescending ? n <= el[1] : n >= el[1]));
|
||||
const index = arr.reverse().findIndex(el => (isDescending ? n <= el : n >= el));
|
||||
return index === -1 ? 0 : arr.length - index - 1;
|
||||
};
|
||||
```
|
||||
|
||||
@ -464,12 +464,9 @@ 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> arr<span class="token punctuation">.</span>length <span class="token punctuation">:</span> index<span class="token punctuation">;
|
||||
};</span>
|
||||
</pre><label class="collapse">Show examples</label><pre class="language-js"><span class="token function">sortedIndexBy</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">// 0</span>
|
||||
</pre><button class="primary clipboard-copy">📋 Copy to clipboard</button></div></div><div class="card fluid"><h3 id="sortedlastindex" class="section double-padded">sortedLastIndex</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.</p><p>Check if the array is sorted in descending order (loosely). Use <code>Array.map()</code> to map each element to an array with its index and value. Use <code>Array.reverse()</code> and <code>Array.findIndex()</code> to find the appropriate last index where the element should be inserted.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">sortedLastIndex</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> n<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="sortedlastindex" class="section double-padded">sortedLastIndex</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.</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.</p><pre class="language-js"><span class="token keyword">const</span> <span class="token function-variable function">sortedLastIndex</span> <span class="token operator">=</span> <span class="token punctuation">(</span>arr<span class="token punctuation">,</span> n<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> arr<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>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> 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> val<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> n <span class="token operator"><=</span> el<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">] :</span> n <span class="token operator">>=</span> el<span class="token punctuation">[</span><span class="token number">1</span><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">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> n <span class="token operator"><=</span> el <span class="token punctuation">:</span> n <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 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>
|
||||
|
||||
@ -8,9 +8,7 @@ Use `Array.reverse()` and `Array.findIndex()` to find the appropriate last index
|
||||
```js
|
||||
const sortedLastIndex = (arr, n) => {
|
||||
const isDescending = arr[0] > arr[arr.length - 1];
|
||||
const index = arr
|
||||
.reverse()
|
||||
.findIndex(el => (isDescending ? n <= el : n >= el));
|
||||
const index = arr.reverse().findIndex(el => (isDescending ? n <= el : n >= el));
|
||||
return index === -1 ? 0 : arr.length - index - 1;
|
||||
};
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user