Array містить набір значень, які можуть бути різного типу даних (число, рядок, і т.д.).
Коли масив містить числа, часто виникає необхідність знайти максимальне або мінімальне значення у масиві.
Розглянемо можливі способи пошуку максимального/мінімального значення у масиві.
for
За допомогою циклу for переглядаємо кожен елемент у масиві порівнюючи з попереднім максимальним / мінімальним значенням.
Пошук максимального числа у масиві за допомогою циклу:
var arr=[5, 1, 8, 12, 3];
var max=arr[0];
for(let i = 1;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
}
alert('max in array: '+max);
Пошук мінімального числа у масиві за допомогою циклу:
var arr=[5, 1, 8, 12, 3];
var min=arr[0];
for(let i = 1;i<arr.length;i++){
if(arr[i]<min){
min=arr[i];
}
}
alert('min in array: '+min);
Math.max() / Math.min() і оператор розширення
Метод для пошуку максимального/мінімального числа Math.max()/Math.min() приймає декілька значень. За допомогою оператора spread можна розширити масив на параметри для метода.
var arr=[7,12,2,5];
var max=Math.max(...arr);
alert(max);
var arr=[7,12,2,5];
var min=Math.min(...arr);
alert(min);
Array.reduce() і Math.min()/Math.max()
За допомогою метода Array.reduce() перевіряємо кожен елемент на максимальне/мінімальне значення методом Math.max()/Math.min().
var arr=[12, 7, 2, 15, 5];
var max = arr.reduce(function(previousValue, currentValue){
return Math.max(previousValue, currentValue);
}, arr[0]);
alert(max);
var arr=[12, 7, 2, 15, 5];
var min = arr.reduce(function(previousValue, currentValue){
return Math.min(previousValue, currentValue);
}, arr[0]);
alert(min);
Math.max()/Math.min() і apply()
Шукаємо максимальне/мінімальне значення за допомогою Math.max()/Math.min(). Масив як параметри за допомогою apply().
var arr=[12, 7, 2, 15, 5];
var max=Math.max.apply(null, arr);
alert(max);
var arr=[12, 7, 2, 15, 5];
var min=Math.min.apply(null, [12, 7, 2, 15, 5]);
alert(min);