我已经做了这个解决方案。
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
你可以使用 index
和 array
参数:
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/