2015-04-07 70 views
1

我發現了一些解決方案,以獲得指標的最大值,但我怎麼能得到的最大值時,我有數組是這樣的:通過最大值獲取數組索引?

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

alert(Math.max(myArray)); 

我想獲得最大價值的指標。在這種情況下,將價值指數2 99

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

+0

你需要一個循環來運行槽數組和比較值。 http://stackoverflow.com/questions/2824145/sorting-a-multidimensional-array-in-javascript – user1054844

回答

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] 
+0

一個細微的變化是'return array.indexOf(Math.max.apply({},array));'' –