diff --git a/README.md b/README.md index ef387092b..b0fdcb9f0 100644 --- a/README.md +++ b/README.md @@ -2325,7 +2325,7 @@ Use `Array.reverse()` and `Array.findIndex()` to find the appropriate last index 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; + return index === -1 ? 0 : arr.length - index; }; ``` @@ -2333,7 +2333,7 @@ const sortedLastIndex = (arr, n) => { Examples ```js -sortedLastIndex([10, 20, 30, 30, 40], 30); // 3 +sortedLastIndex([10, 20, 30, 30, 40], 30); // 4 ``` diff --git a/docs/index.html b/docs/index.html index 615a2d21c..e0f6dce92 100644 --- a/docs/index.html +++ b/docs/index.html @@ -467,9 +467,9 @@ Object.assig

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.

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;
+  return index === -1 ? 0 : arr.length - index;
 };
-
sortedLastIndex([10, 20, 30, 30, 40], 30); // 3
+
sortedLastIndex([10, 20, 30, 30, 40], 30); // 4
 

sortedLastIndexBy

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.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.

const sortedLastIndexBy = (arr, n, fn) => {
   const isDescending = fn(arr[0]) > fn(arr[arr.length - 1]);
   const val = fn(n);