You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Let's step away from the individual data structures and talk about the iterations over them.
3
+
Lass uns einen Schritt zurücktreten von den einzelnen Datenstrukturen und über deren Iteration sprechen.
5
4
6
-
In the previous chapter we saw methods`map.keys()`, `map.values()`, `map.entries()`.
5
+
Im letzten Kapitel haben wir die Methoden`map.keys()`, `map.values()`, `map.entries()` gesehen.
7
6
8
-
These methods are generic, there is a common agreement to use them for data structures. If we ever create a data structure of our own, we should implement them too.
7
+
Diese Methoden sind generisch, es ist allgemein üblich, sie für Datenstrukturen zu verwenden. Wenn wir jemals eine eigene Datenstruktur erstellen, sollten wir sie ebenfalls implementieren.
9
8
10
-
They are supported for:
9
+
Sie werden unterstützt für:
11
10
12
11
-`Map`
13
12
-`Set`
14
13
-`Array`
15
14
16
-
Plain objects also support similar methods, but the syntax is a bit different.
15
+
Einfache Objekte unterstützen auch ähnliche Methoden, aber die Syntax ist ein wenig anders.
17
16
18
17
## Object.keys, values, entries
19
18
20
-
For plain objects, the following methods are available:
19
+
Für einfache Objekte sind die folgenden Methoden verfügbar:
21
20
22
-
-[Object.keys(obj)](mdn:js/Object/keys) -- returns an array of keys.
23
-
-[Object.values(obj)](mdn:js/Object/values) -- returns an array of values.
24
-
-[Object.entries(obj)](mdn:js/Object/entries) -- returns an array of`[key, value]` pairs.
21
+
-[Object.keys(obj)](mdn:js/Object/keys) -- gibt ein Array von Schlüsseln zurück.
22
+
-[Object.values(obj)](mdn:js/Object/values) -- gibt ein Array von Werten zurück.
23
+
-[Object.entries(obj)](mdn:js/Object/entries) -- gibt ein Array von`[key, value]`-Paaren zurück.
25
24
26
-
Please note the distinctions (compared to map for example):
25
+
Bitte beachte die Unterschiede (zun Beispiel im Vergleich zu Map):
27
26
28
27
|| Map | Object |
29
28
|-------------|------------------|--------------|
30
-
|Call syntax |`map.keys()`|`Object.keys(obj)`, but not`obj.keys()`|
31
-
|Returns| iterable | "real" Array |
29
+
|Aufrufsyntax |`map.keys()`|`Object.keys(obj)`, aber nicht`obj.keys()`|
30
+
|Rückgabe| iterable | "echtes" Array |
32
31
33
-
The first difference is that we have to call `Object.keys(obj)`, and not`obj.keys()`.
32
+
Der erste Unterschied ist, dass wir `Object.keys(obj)` aufrufen müssen, und nicht`obj.keys()`.
34
33
35
-
Why so? The main reason is flexibility. Remember, objects are a base of all complex structures in JavaScript. So we may have an object of our own like `data`that implements its own `data.values()`method. And we still can call`Object.values(data)`on it.
34
+
Warum ist das so? Der Hauptgrund ist Flexibilität. Erinnere dich, Objekte sind die Basis aller komplexen Strukturen in JavaScript. Wir können also ein eigenes Objekt wie `data`haben, das seine eigene Methode `data.values()`implementiert. Und wir können immer noch`Object.values(data)`darauf anwenden.
36
35
37
-
The second difference is that `Object.*`methods return "real" array objects, not just an iterable. That's mainly for historical reasons.
36
+
Der zweite Unterschied ist, dass die `Object.*`Methoden "echte" Array-Objekte zurückgeben, nicht nur ein Iterable. Das liegt hauptsächlich an historischen Gründen.
Wie bei einer `for..in`-Schleife, ignorieren diese Methoden Eigenschaften, die `Symbol(...)` als Schlüssel verwenden.
68
67
69
-
Usually that's convenient. But if we want symbolic keys too, then there's a separate method [Object.getOwnPropertySymbols](mdn:js/Object/getOwnPropertySymbols) that returns an array of only symbolic keys. Also, there exist a method [Reflect.ownKeys(obj)](mdn:js/Reflect/ownKeys) that returns *all* keys.
68
+
Normalerweise ist das praktisch. Aber wenn wir auch symbolische Schlüssel wollen, dann gibt es eine separate Methode [Object.getOwnPropertySymbols](mdn:js/Object/getOwnPropertySymbols), die ein Array von nur symbolischen Schlüsseln zurückgibt. Außerdem gibt es die Methode [Reflect.ownKeys(obj)](mdn:js/Reflect/ownKeys), die *alle* Schlüssel zurückgibt.
70
69
```
71
70
72
71
73
-
## Transforming objects
72
+
## Transformation von Objekten
74
73
75
-
Objects lack many methods that exist for arrays, e.g. `map`, `filter`and others.
74
+
Objekten fehlen viele Methoden, die für Arrays existieren, z.B. `map`, `filter`und andere.
76
75
77
-
If we'd like to apply them, then we can use `Object.entries`followed by`Object.fromEntries`:
76
+
Wenn wir sie anwenden möchten, dann können wir `Object.entries`gefolgt von`Object.fromEntries` verwenden:
78
77
79
-
1.Use`Object.entries(obj)` to get an array of key/value pairs from `obj`.
80
-
2.Use array methods on that array, e.g. `map`, to transform these key/value pairs.
81
-
3.Use`Object.fromEntries(array)`on the resulting array to turn it back into an object.
78
+
1.Verwende`Object.entries(obj)`, um ein Array von Schlüssel/Wert-Paaren von `obj` zu erhalten.
79
+
2.Verwende Array-Methoden auf diesem Array, z.B. `map`, um diese Schlüssel/Wert-Paare zu transformieren.
80
+
3.Verwende`Object.fromEntries(array)`auf dem resultierenden Array, um es wieder in ein Objekt umzuwandeln.
82
81
83
-
For example, we have an object with prices, and would like to double them:
82
+
Zum Beispiel könnten wir ein Objekt mit Preisen haben und möchten diese verdoppeln:
84
83
85
84
```js run
86
85
let prices = {
@@ -91,13 +90,13 @@ let prices = {
91
90
92
91
*!*
93
92
let doublePrices =Object.fromEntries(
94
-
//convert prices to array, map each key/value pair into another pair
95
-
//and then fromEntries gives back the object
93
+
//Preise in ein Array konvertieren, jedes Schlüssel/Wert-Paar in ein anderes Paar umwandeln
It may look difficult at first sight, but becomes easy to understand after you use it once or twice. We can make powerful chains of transforms this way.
102
+
Es mag auf den ersten Blick schwierig erscheinen, wird aber leicht verständlich, nachdem Du es ein- oder zweimal verwendet hast. Auf diese Weise können wir leistungsstarke Transformationsketten erstellen.
0 commit comments