Поиск минимального элемента массива

Поиск минимального элемента массива

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы научились создавать собственные объекты в Javascript. В данной статье я бы хотел рассмотреть различные варианты поиска минимального элемента массива на примере языка Javascript. Пусть у нас массив состоит только из чисел типа данных "Number".

Рассмотрим 4 варианта получения минимального элемента массива:

1 вариант — это просто сравнить все значения в цикле:

var a = [1,61,2,67,-30,12,-77,100,126,-102,6];
var a_min = a[0];
for (i = 1; i < a.length; i++) {
   if (a[i] <= a_min) {
      a_min = a[i];   
   }
}
alert("Минимальное значение = " + a_min);

Здесь всё просто: вначале мы предполагаем, что минимальный элемент — это нулевой элемент массива. Далее, каждый следующий элемент массива сравниваем с минимальным, и если он меньше, то присваиваем минимальному элементу этот элемент массива.

2 вариант — отсортировать элементы в порядке возрастания и взять нулевой элемент массива:

var a = [1,61,2,67,-30,12,-77,100,126,-102,6];
var b = a.sort(mySort);
alert(b[0]); // выйдет число -102
function mySort(a,b) {
   if (a < b) return -1;
   if (a == b) return 0;
   if (a > b) return 1;
}

В данном случае мы просто вызываем метод "sort()" у исходного массива. Здесь в качестве аргумента передаём функцию пользовательской сортировки "mySort()". В данном конкретном случае можно и не писать эту функцию, метод sort() итак отработает корректно, но сложность может возникнуть, если передать в массив число в виде строки. Добавьте в массив число "-2016" и посмотрите, что получится в итоге (с использованием функции "mysort()" и без неё).

3 способ (условно) — использование метода "shift()". В принципе, это тоже самое, что и выше, только вместо "b[0]" мы используем "shift()":

var a = [1,61,2,67,-30,12,-77,100,126,-102,6];
alert(a.sort(mySort).shift());

4 способ — использование метода "Math.min()". Особенностью языка Javascript является то, что мы можем вызвать любую функцию в контексте любого объекта. Это можно сделать с помощью метода "apply()":

var a = [1,61,2,67,-30,12,-77,100,126,-102,6];
alert(Math.min.apply(Array, a));

В данном случае мы вызываем функцию "min()" в контексте "Array", и вторым параметром передаём наш массив.

В качестве домашнего задания: на основе данных примеров найдите максимальный элемент массива.

В данной статье вы узнали, как найти минимальный элемент в массиве.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *