You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用for循环获取JavaScript数组中最大值对应的索引

实现思路

你当前的代码仅记录了遍历过程中最大值的数值,没有存储该数值对应的数组索引,所以只要新增一个变量同步记录最大值对应的索引即可满足需求。另外原代码将最大值初始值设为0存在边界缺陷,如果输入数组全为负数会返回错误结果,优化时可把初始值设为数组第一个元素的数值和对应索引。

调整后的代码
function highestNumber(array) {
  // 边界判断,避免空数组报错
  if (array.length === 0) return -1;
  let biggerNumber = array[0];
  let maxIndex = 0;
  for (let index = 0; index < array.length; index += 1) {
    if (array[index] > biggerNumber) {
      biggerNumber = array[index];
      // 同步更新最大值对应的索引
      maxIndex = index;
    }
  }
  return maxIndex;
}

// 测试调用,返回4符合预期
highestNumber([2, 3, 6, 7, 10, 1]);
更简洁的内置方法实现

如果不需要手动遍历,可以直接组合JS内置方法实现相同效果,逻辑是先找到数组最大值,再匹配最大值第一次出现的索引:

function highestNumber(array) {
  if (array.length === 0) return -1;
  return array.indexOf(Math.max(...array));
}

注意:如果数组中有多个相同的最大值,上述两种实现都会返回第一个最大值对应的索引,符合常规业务需求。

内容的提问来源于stack exchange,提问作者Andrey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:06:03