Поиск минимального элемента массива
Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье мы научились создавать собственные объекты в 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", и вторым параметром передаём наш массив.
В качестве домашнего задания: на основе данных примеров найдите максимальный элемент массива.
В данной статье вы узнали, как найти минимальный элемент в массиве.
На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.