Bedienungsanleitung

Sie finden auf dieser Seite eine Reihe von Aufgaben mit dazugehörigen Datensätzen. Sie sollen für jede Aufgabe eine Funktion zu schreiben, welche die Daten gemäß der Aufgabenstellung bearbeitet und dann zurückgibt. Nutzen Sie dafür, sofern nicht anders angegeben, die in der Vorlesung vorgestellten Iterationsprimitiven find, filter, map und reduce an Stelle von expliziten Schleifen.

Für die Implementierung Ihrer Funktion, müssen Sie die folgenden Randbedingungen beachten:

Aufgabe 1

Finden Sie einen beliebigen Eintrag mit grünen Haaren

[
  {
    "name": "Phineas",
    "hair": "red"
  },
  {
    "name": "Ferb",
    "hair": "green"
  },
  {
    "name": "Agent P",
    "hair": "green"
  }
]
Aufgabe 2

Finden Sie alle Einträge mit grünen Haaren

[
  {
    "name": "Phineas",
    "hair": "red"
  },
  {
    "name": "Ferb",
    "hair": "green"
  },
  {
    "name": "Agent P",
    "hair": "green"
  }
]
Aufgabe 3

Ergänzen Sie alle Objekte um einen Schlüssel nameHasSpaces, der auf den Wert true gesetzt werden soll wenn der Name ein Leerzeichen enthält. Nutzen Sie zur Implementierung die String-Methode indexOf.

[
  {
    "name": "Phineas",
    "hair": "red"
  },
  {
    "name": "Ferb",
    "hair": "green"
  },
  {
    "name": "Agent P",
    "hair": "green"
  }
]
Aufgabe 4

Finden Sie alle Einträge, deren Name ein p oder ein P enthält. Nutzen Sie dafür zunächst map in Kombination mit z.B. toLowerCase.

[
  {
    "name": "Phineas",
    "hair": "red"
  },
  {
    "name": "Ferb",
    "hair": "green"
  },
  {
    "name": "Agent P",
    "hair": "green"
  }
]
Aufgabe 5

Ergänzen Sie jeden Datensatz um die Gesamtkosten (ergibt sich aus quantity * price).

[
  {
    "name": "Doppelflansch",
    "quantity": 3,
    "price": 4
  },
  {
    "name": "Druckmanschette",
    "quantity": 2,
    "price": 12
  }
]
Aufgabe 6

Berechnen Sie mit reduce die Gesamtkosten über alle Objekte hinweg.

[
  {
    "name": "Doppelflansch",
    "quantity": 3,
    "price": 4
  },
  {
    "name": "Druckmanschette",
    "quantity": 2,
    "price": 12
  }
]