我找到了一些获取索引最大值的解决方案,但是当我有这样的数组时如何获得最大值:
myArray = [];
myArray[1] = 10;
myArray[2] = 99;
alert(Math.max(myArray));
我想得到最大值的索引。在这种情况下,它将是值为99的索引2。
我现在得到的结果是NaN.alert(Math.max(myArray));
答案 0 :(得分:3)
<强> 1。如果您只想要第一个实例:
var arrayMaxIndex = function(array) {
return array.indexOf(Math.max.apply(null, array));
};
console.log(arrayMaxIndex([1,2,7,2])); //outputs 2
<强> 2。如果您想要出现所有最大值:
function getAllIndexes(arr, val) {
var indexes = [], i = -1;
while ((i = arr.indexOf(val, i+1)) != -1){
indexes.push(i);
}
return indexes;
}
var arrayAllMaxIndexes = function(array){
return getAllIndexes(array, Math.max.apply(null, array));
}
console.log(arrayAllMaxIndexes([1,2,7,2,7])); // outputs [2,4]