diff --git a/snippets/sortedIndex.md b/snippets/sortedIndex.md new file mode 100644 index 000000000..f83da6ec0 --- /dev/null +++ b/snippets/sortedIndex.md @@ -0,0 +1,19 @@ +### sortedIndex + +Returns the lowest 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.findIndex()` to find the appropriate index where the element should be inserted. + +```js +const sortedIndex = (arr, n) => { + const isDescending = arr[0] > arr[arr.length - 1]; + const index = arr.findIndex(el => isDescending ? n >= el : n <= el); + return index === -1 ? arr.length : index; +}; +``` + +```js +sortedIndex([5,3,2,1], 4); // 1 +sortedIndex([30,50],40); // 1 +```