Функциональный JavaScriptМетоды массивовmedium

Функция min

В джаваскрипте есть функция 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), ));