← Alle AufgabenJavaScript · Junior
groupBy: Elemente gruppieren
Schreib eine Funktion groupBy(array, getKey), die Elemente in Gruppen sortiert. Der Gruppenschlüssel ist getKey(item), und der Wert ist ein Array der Elemente in ihrer ursprünglichen Reihenfolge.
Zum Beispiel liefert groupBy([1, 2, 3, 4], (n) => (n % 2 ? "odd" : "even")) das Ergebnis { odd: [1, 3], even: [2, 4] }.
Strg+Enter führt die Tests aus. Tab rückt ein; um den Editor per Tastatur zu verlassen, drücke Esc und dann Tab. Der Code wird in diesem Browser gespeichert.
Tests (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"]);