Mr_Saxa
@Mr_Saxa
Типичный пхпешник

Как узнать индекс элемента с большим значением?

Есть массив чисел, нужно узнать индекс элемента самого большого числа.
тоесть
var arr = [ 1, 3, 2, 3, 6, 2 ];
index_max(arr); // return 5
  • Вопрос задан
  • 5818 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
var arr = [ 1, 3, 2, 3, 6, 2 ];
var maxIndex = arr.indexOf( Math.max.apply(null, arr)); // 4, считается от 0


  1. Math.max() возвращает наибольшее значение из аргументов.
  2. чтобы передать массив вместо списка, используется apply()
  3. получив само наибольшее значение, остаётся найти его индекс в массиве через метод массива 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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы