我有这个:
var arr = [0, 21, 22, 7]; 将最大值的索引返回到另一个变量的最佳方法是什么? 问题来源于stack overflow
这可能是最好的方法,因为它可靠并且可以在旧的浏览器上运行:
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在大型数组上抛出。我会坚持使用该功能。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。