按Max值获取数组索引?

时间:2015-04-07 14:00:54

标签: javascript arrays

我找到了一些获取索引最大值的解决方案,但是当我有这样的数组时如何获得最大值:

myArray = [];
myArray[1] = 10;
myArray[2] = 99;

alert(Math.max(myArray));

我想得到最大值的索引。在这种情况下,它将是值为99的索引2。

我现在得到的结果是NaN.alert(Math.max(myArray));

1 个答案:

答案 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]