# Pure or not Pure

| Aufgabe | Nur ein Rückgabewert | Resultat nur Abhängig von übergebenen Parametern | Verändert keine existierenden Werte | pure oder impure |
| ------- | -------------------- | ------------------------------------------------ | ----------------------------------- | ---------------- |
| 1.1     | Ja                   | Nein                                             | Nein                                | impure           |
| 1.2     | Ja                   | Ja                                               | Ja                                  | pure             |
| 1.3     | Ja                   | ja                                               | Ja                                  | pure             |
| 1.4     | Ja                   | Nein                                             | Ja                                  | impure           |
| 1.5     | Ja                   | Ja                                               | Ja                                  | pure             |
| 1.6     | Ja                   | Ja                                               | Nein                                | impure           |

## Aufgabe 1.1

```js
function addToCartItems(items, item) {
  return [...items, item];
}

let cartItems = [];
cartItems = addToCartItems(cartItems, "Apple");
console.log(cartItems); // Ausgabe: ['Apple']
cartItems = addToCartItems(cartItems, "Banana");
console.log(cartItems); // Ausgabe: ['Apple', 'Banana']
cartItems = addToCartItems(cartItems, "Orange");
console.log(cartItems); // Ausgabe: ['Apple', 'Banana', 'Orange']
```

## Aufgabe 1.2

```js
function add(a, b) {
  return a + b;
}

console.log(add(5, 3)); // Ausgabe: 8
console.log(add(2, 4)); // Ausgabe: 6
```

## Aufgabe 1.3

```js
function firstCharacter(str) {
  return str.charAt(0);
}

console.log(firstCharacter("Hello")); // Ausgabe: H
console.log(firstCharacter("JavaScript")); // Ausgabe: J
```

## Aufgabe 1.4

```js
// Methode, um eine Zahl mit einem zufälligen Wert zu multiplizieren
function multiplyWithRandom(number, randomValue) {
  return number * randomValue;
}

console.log(multiplyWithRandom(5, Math.random())); // Ausgabe: Eine zufällige Zahl zwischen 0 und 5
console.log(multiplyWithRandom(10, Math.random())); // Ausgabe: Eine zufällige Zahl zwischen 0 und 10
```

## Aufgabe 1.5

```js
// Funktion zum Teilen einer Zahl durch eine andere
function divideNumbers(dividend, divisor) {
  return dividend / divisor;
}

console.log(divideNumbers(10, 2)); // Ausgabe: 5
console.log(divideNumbers(8, 4)); // Ausgabe: 2
```

## Aufgabe 1.6

```js
// Methode zum Ausgeben und Rückgeben einer Zeichenkette
function printAndReturnString(str) {
  return str; // Rückgabe der Zeichenkette
}

console.log(printAndReturnString("Hello")); // Ausgabe: Hello
```
