← Wszystkie zadaniaJavaScript · Junior
groupBy: pogrupuj elementy
Napisz funkcję groupBy(array, getKey), która rozkłada elementy na grupy. Kluczem grupy jest getKey(item), a wartością tablica elementów w oryginalnej kolejności.
Na przykład groupBy([1, 2, 3, 4], (n) => (n % 2 ? "odd" : "even")) zwraca { odd: [1, 3], even: [2, 4] }.
Ctrl+Enter uruchamia testy. Tab robi wcięcie; aby wyjść z edytora klawiaturą, naciśnij Esc, a potem Tab. Kod zapisuje się w tej przeglądarce.
Testy (4)
expect(groupBy([1, 2, 3, 4], (n) => (n % 2 ? "odd" : "even"))).toEqual({ odd: [1, 3], even: [2, 4] });
expect(groupBy(["one", "two", "three"], (s) => s.length)).toEqual({ 3: ["one", "two"], 5: ["three"] });
expect(groupBy([], (x) => x)).toEqual({});
const people = [{ name: "Ann", city: "Kyiv" }, { name: "Bob", city: "Warsaw" }, { name: "Eve", city: "Kyiv" }]; expect(groupBy(people, (p) => p.city).Kyiv.map((p) => p.name)).toEqual(["Ann", "Eve"]);