В джаваскрипте есть функция Math.min
, которая находит минимальное число среди аргументов. Например, Math.min(3, 9, 2, 6) === 2
.
С числами все просто, потому что мы привыкли к естественному порядку чисел. Но иногда бывает нужно найти минимум из набора каких-то более сложных элементов.
Реализуйте функцию, которая находит минимальный элемент в массиве array
, сравнивая элементы с помощью функции compareFn
. Функция сравнения элементов работает точно так же, как в методе sort. Если минимальных элементов несколько, нужно возвращать первый.
Если массив пустой, необходимо бросить ошибку типа TypeError
со значением "Min of empty array"
.
const students = [ { name: "A", age: 15 }, { name: "B", age: 8 }, // ← самый молодой { name: "C", age: 23 }, ] console.log(min(students, (a, b) => a.age - b.age));
const cities = [ { "city": "Shanghai", "country": "China", "population": 24800000 }, { "city": "Beijing", "country": "China", "population": 21800000 }, { "city": "Istanbul", "country": "Turkey", "population": 15600000 }, { "city": "Karachi", "country": "Pakistan", "population": 15500000 }, { "city": "Mumbai", "country": "India", "population": 12400000 }, ]; console.log(min( cities, (a, b) => a.country.localeCompare(b.country) || a.city.localeCompare(b.city), ));