var arr = [ 1, 3, 2, 3, 6, 2 ];
var maxIndex = arr.indexOf( Math.max.apply(null, arr)); // 4, считается от 0
- Math.max() возвращает наибольшее значение из аргументов.
- чтобы передать массив вместо списка, используется apply()
- получив само наибольшее значение, остаётся найти его индекс в массиве через метод массива indexOf().
Не очень эффективно, т.к. фактически массив перебирается дважды: в поиске максимума и в поиске индекса. Можно сделать за один проход, запоминая вместе с найденным максимальным значением его позицию:
var arr = [ 1, 3, 2, 3, 6, 2 ];
function index_max(arr) {
var i, maxV, maxP;
for( i = 0; i < arr.length; i++) {
if( typeof maxV === "undefined" || arr[i] > maxV ) {
maxV = arr[i];
maxP = i;
}
}
return maxP;
}
index_max(arr) // 4