如何高效利用双重索引定位嵌套数组中的目标值,实现选手与赛轮匹配?
- 内容介绍
- 相关推荐
本文共计441个文字,预计阅读时间需要2分钟。
原文介绍如下:
在 karting 赛事管理系统中,常需基于「赛轮编号」(如 round = 10)反查对应车手及其在个人参赛轮次列表中的精确位置。原始数据结构为 driver[0][i] 表示第 i 位车手对象,其 .round 属性为一维数字数组(如 [1,3,5,7,10])。目标是:给定 driverIndex 和 targetRound,高效返回 [ [driverIndex], [roundIndex] ] 形式的二维数组——其中 roundIndex 为 targetRound 在 .round 数组中的首次出现下标,未找到则为 null。
核心方案是利用原生 Array.prototype.indexOf() 方法,它在底层经过高度优化,时间复杂度为 O(n),但无需手动编写 for 循环,语义清晰且执行效率优于手写循环(尤其在 V8 引擎中)。
本文共计441个文字,预计阅读时间需要2分钟。
原文介绍如下:
在 karting 赛事管理系统中,常需基于「赛轮编号」(如 round = 10)反查对应车手及其在个人参赛轮次列表中的精确位置。原始数据结构为 driver[0][i] 表示第 i 位车手对象,其 .round 属性为一维数字数组(如 [1,3,5,7,10])。目标是:给定 driverIndex 和 targetRound,高效返回 [ [driverIndex], [roundIndex] ] 形式的二维数组——其中 roundIndex 为 targetRound 在 .round 数组中的首次出现下标,未找到则为 null。
核心方案是利用原生 Array.prototype.indexOf() 方法,它在底层经过高度优化,时间复杂度为 O(n),但无需手动编写 for 循环,语义清晰且执行效率优于手写循环(尤其在 V8 引擎中)。

