2019-06-10
描述
把一个元素按照数组中原有的排序规则插入该数组中适当的位置,并返回插入位置的最大索引值。
提示
- 宽松的检查数组的排序规则是否为降序
- 使用
Array.prototype.reverse()
和Array.prototype.findIndex()
获取元素应该插入的最接近的最大索引值
代码
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;
};
示例
返回给定元素应插入的最大位置:
sortedLastIndex([10, 20, 30, 30, 40], 30); // 4