Files
30-seconds-of-code/snippets/sortedLastIndex.md
30secondsofcode f6a89b0939 Travis build: 1744
2018-02-26 12:04:41 +00:00

19 lines
608 B
Markdown

### sortedLastIndex
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.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.reverse().findIndex(el => (isDescending ? n <= el : n >= el));
return index === -1 ? 0 : arr.length - index - 1;
};
```
```js
sortedLastIndex([10, 20, 30, 30, 40], 30); // 3
```