简介
在本实验中,我们将探索在有序数组中查找最后插入索引的概念。我们将学习如何检查数组是否按降序排序,以及如何使用 Array.prototype.reverse() 和 Array.prototype.findIndex() 来找到元素应插入的合适最后索引。在本实验结束时,你将对如何维护数组的排序顺序有更深入的理解。
有序数组中最后插入索引的说明
要找到为了保持数组排序顺序,某个值应插入的最高索引,请遵循以下步骤:
- 首先,大致检查数组是否按降序排序。
- 然后,使用
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
要开始练习编码,请打开终端/SSH 并输入 node。
总结
恭喜你!你已经完成了“有序数组中的最后插入索引”实验。你可以在 LabEx 中练习更多实验来提升你的技能。