开发者社区> 问答> 正文

返回数组中最大值的索引

我有这个:

var arr = [0, 21, 22, 7]; 将最大值的索引返回到另一个变量的最佳方法是什么? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-07 22:43:20 402 0
1 条回答
写回答
取消 提交回答
  • 这可能是最好的方法,因为它可靠并且可以在旧的浏览器上运行:

    function indexOfMax(arr) { if (arr.length === 0) { return -1; }

    var max = arr[0];
    var maxIndex = 0;
    
    for (var i = 1; i < arr.length; i++) {
        if (arr[i] > max) {
            maxIndex = i;
            max = arr[i];
        }
    }
    
    return maxIndex;
    

    } 还有这种单线:

    let i = arr.indexOf(Math.max(...arr)); 它执行的比较次数是所需次数的两倍,但是会RangeError在大型数组上抛出。我会坚持使用该功能。

    2020-02-07 22:43:33
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载