JavaScript 返回数组中最小和最大数的索引

标签 javascript

我已经做了这个解决方案。

var arr=[4,10,24,3,2,2,19];

var max = arr[0];
var maxIndex = 0;
var min = arr[0];
var minIndex = 0;

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

alert(maxIndex);
alert(minIndex);

是否有更简单的方法来完成上述任务?

最佳答案

reduce 你可以使用 indexarray 参数:

var arr=[4,10,24,3,2,2,19];

var maxIndex = arr.reduce(function(highestIndex, element, index, array){
    return element > array[highestIndex] ? index : highestIndex;
}, 0);

对于最小值和最大值:

var limits = arr.reduce(function(limits, element, index, array){
    limits.max = element > array[limits.max] ? index : limits.max;
    limits.min = element < array[limits.min] ? index : limits.min;
    return limits;
}, { max : 0, min : 0 });
//limits.max === Highest value index,
//limits.min === Lowest value index

关于JavaScript 返回数组中最小和最大数的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35202190/

相关文章:

javascript - 使用 showLoaderOnConfirm 时禁用 Sweet Alert 中的输入文本框

javascript - 通过 parentNode.removeChild 删除元素会抛出 DOM Exception 8

javascript - 当函数是递归Javascript时如何返回父函数

javascript - 有没有办法随机化 CSS/JavaScript 中的填充?

php - 添加安全层以尽可能防止 AJAX 僵尸程序

javascript - CSS/HTML/JS : what to watch out for when building website that will have a mobile layout

javascript - 切换 div 的可见性属性

javascript - 在Nodejs中重新分配变量时,存储旧变量的内存会释放吗?

javascript - Backbonejs 路由器导航功能不触发路由器功能

javascript - Bootmetro 磁贴边框颜色