Тестовое задание для Frontend разработчика
https://it-only.ru, [email protected] Условие.
Написать функцию groupBy, которая на вход принимает 2 параметра: однородный массив элементов функцию-коллбек, которая каждому элементу может сопоставить ключ группы Результатом работы функции должен быть объект, содержащий массивы элементов, доступные по ключу группы.
Функция должна быть как можно более обобщённой, не иметь в реализации any, unknown или object. Тестовое задание https://it-only.ru, [email protected] // simple groupBy([1.2, 1.1, 2.3, 0.4], Math.floor); let result = { "0": [0.4], "1": [1.2, 1.1], "2": [2.3], }; // complecated groupBy(["one", "two", "three"], (el) => el.length); let result = { "3": ["one", "two"], "5": ["three"], }; // types enum Gender { Male, Female, } groupBy( [ { g: Gender.Male, n: "A" }, { g: Gender.Female, n: "B" }, { g: Gender.Female, n: "C" }, ], (el) => el.g ); let result = { [Gender.Male]: [{ g: Gender.Male, n: "A" }], [Gender.Female]: [ { g: Gender.Female, n: "B" }, { g: Gender.Female, n: "C" }, ], };