Skip to content

Commit 3ed9dd6

Browse files
authored
Merge pull request #193 from behrends/map_set
Map and Set
2 parents a067367 + d225c60 commit 3ed9dd6

6 files changed

Lines changed: 156 additions & 157 deletions

File tree

1-js/05-data-types/07-map-set/01-array-unique-map/task.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ importance: 5
22

33
---
44

5-
# Filter unique array members
5+
# Filtere eindeutige Array-Elemente
66

7-
Let `arr` be an array.
7+
Lass `arr` ein Array sein.
88

9-
Create a function `unique(arr)` that should return an array with unique items of `arr`.
9+
Erstelle eine Funktion `unique(arr)`, die ein Array mit den eindeutigen Elementen von `arr` zurückgeben sollte.
1010

11-
For instance:
11+
Zum Beispiel:
1212

1313
```js
1414
function unique(arr) {
15-
/* your code */
15+
/* Dein Code */
1616
}
1717

1818
let values = ["Hare", "Krishna", "Hare", "Krishna",
@@ -22,6 +22,6 @@ let values = ["Hare", "Krishna", "Hare", "Krishna",
2222
alert( unique(values) ); // Hare, Krishna, :-O
2323
```
2424

25-
P.S. Here strings are used, but can be values of any type.
25+
P.S. Hier werden Zeichenketten verwendet, es können aber Werte jeglichen Typs sein.
2626

27-
P.P.S. Use `Set` to store unique values.
27+
P.P.S. Verwende `Set`, um eindeutige Werte zu speichern.

1-js/05-data-types/07-map-set/02-filter-anagrams/solution.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
To find all anagrams, let's split every word to letters and sort them. When letter-sorted, all anagrams are same.
1+
Um alle Anagramme zu finden, lassen wir uns jede Zeichenkette in Buchstaben aufteilen und sortieren sie. Wenn sie buchstabensortiert sind, sind alle Anagramme gleich.
22

3-
For instance:
3+
Zum Beispiel:
44

55
```
66
nap, pan -> anp
@@ -9,14 +9,14 @@ cheaters, hectares, teachers -> aceehrst
99
...
1010
```
1111

12-
We'll use the letter-sorted variants as map keys to store only one value per each key:
12+
Wir verwenden die buchstabensortierten Varianten als Schlüssel in einer Map, um nur einen Wert pro Schlüssel zu speichern:
1313

1414
```js run
1515
function aclean(arr) {
1616
let map = new Map();
1717

1818
for (let word of arr) {
19-
// split the word by letters, sort them and join back
19+
// das Wort in Buchstaben aufteilen, sortieren und wieder zusammenfügen
2020
*!*
2121
let sorted = word.toLowerCase().split('').sort().join(''); // (*)
2222
*/!*
@@ -31,9 +31,9 @@ let arr = ["nap", "teachers", "cheaters", "PAN", "ear", "era", "hectares"];
3131
alert( aclean(arr) );
3232
```
3333

34-
Letter-sorting is done by the chain of calls in the line `(*)`.
34+
Das Buchstabensortieren wird durch die Aufrufkette in der Zeile `(*)` durchgeführt.
3535

36-
For convenience let's split it into multiple lines:
36+
Zur besseren Übersicht teilen wir es in mehrere Zeilen auf:
3737

3838
```js
3939
let sorted = word // PAN
@@ -43,21 +43,21 @@ let sorted = word // PAN
4343
.join(''); // anp
4444
```
4545

46-
Two different words `'PAN'` and `'nap'` receive the same letter-sorted form `'anp'`.
46+
Zwei unterschiedliche Wörter `'PAN'` und `'nap'` erhalten dieselbe buchstabensortierte Form `'anp'`.
4747

48-
The next line put the word into the map:
48+
Die nächste Zeile fügt das Wort in die Map ein:
4949

5050
```js
5151
map.set(sorted, word);
5252
```
5353

54-
If we ever meet a word the same letter-sorted form again, then it would overwrite the previous value with the same key in the map. So we'll always have at maximum one word per letter-form.
54+
Wenn wir erneut auf ein Wort mit derselben buchstabensortierten Form stoßen, wird der vorherige Wert mit demselben Schlüssel in der Map überschrieben. Daher haben wir immer maximal ein Wort pro Buchstabenform.
5555

56-
At the end `Array.from(map.values())` takes an iterable over map values (we don't need keys in the result) and returns an array of them.
56+
Am Ende erzeugt `Array.from(map.values())` ein iterierbares über die Werte der Map (wir benötigen die Schlüssel im Ergebnis nicht) und gibt ein Array davon zurück.
5757

58-
Here we could also use a plain object instead of the `Map`, because keys are strings.
58+
Hier könnten wir anstelle der `Map` auch ein einfaches Objekt verwenden, da die Schlüssel Zeichenketten sind.
5959

60-
That's how the solution can look:
60+
So könnte die Lösung aussehen:
6161

6262
```js run demo
6363
function aclean(arr) {
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
1+
---
12
importance: 4
23

34
---
45

5-
# Filter anagrams
6+
# Anagramme filtern
67

7-
[Anagrams](https://en.wikipedia.org/wiki/Anagram) are words that have the same number of same letters, but in different order.
8+
[Anagramme](https://de.wikipedia.org/wiki/Anagramm) sind Wörter, die die gleiche Anzahl von Buchstaben haben, aber in einer anderen Reihenfolge.
89

9-
For instance:
10+
Zum Beispiel:
1011

1112
```
1213
nap - pan
1314
ear - are - era
1415
cheaters - hectares - teachers
1516
```
1617

17-
Write a function `aclean(arr)` that returns an array cleaned from anagrams.
18+
Schreibe eine Funktion `aclean(arr)`, die ein Array zurückgibt, das von Anagrammen bereinigt ist.
1819

19-
For instance:
20+
Zum Beispiel:
2021

2122
```js
2223
let arr = ["nap", "teachers", "cheaters", "PAN", "ear", "era", "hectares"];
2324

24-
alert( aclean(arr) ); // "nap,teachers,ear" or "PAN,cheaters,era"
25+
alert( aclean(arr) ); // "nap,teachers,ear" oder "PAN,cheaters,era"
2526
```
2627

27-
From every anagram group should remain only one word, no matter which one.
28-
28+
Von jeder Anagrammgruppe sollte nur ein Wort übrig bleiben, egal welches.

1-js/05-data-types/07-map-set/03-iterable-keys/solution.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1+
Das liegt daran, dass `map.keys()` ein iterierbares Objekt zurückgibt, aber kein Array.
12

2-
That's because `map.keys()` returns an iterable, but not an array.
3-
4-
We can convert it into an array using `Array.from`:
3+
Wir können es mit `Array.from` in ein Array umwandeln:
54

65

76
```js run

1-js/05-data-types/07-map-set/03-iterable-keys/task.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ importance: 5
22

33
---
44

5-
# Iterable keys
5+
# Iterierbare Schlüssel
66

7-
We'd like to get an array of `map.keys()` in a variable and then apply array-specific methods to it, e.g. `.push`.
7+
Wir möchten ein Array von `map.keys()` in einer Variablen haben und dann darauf array-spezifische Methoden anwenden, z.B. `.push`.
88

9-
But that doesn't work:
9+
Aber das funktioniert nicht:
1010

1111
```js run
1212
let map = new Map();
@@ -16,9 +16,10 @@ map.set("name", "John");
1616
let keys = map.keys();
1717

1818
*!*
19-
// Error: keys.push is not a function
19+
// Fehler: keys.push ist keine Funktion
2020
keys.push("more");
2121
*/!*
2222
```
2323

24-
Why? How can we fix the code to make `keys.push` work?
24+
Warum? Wie können wir den Code korrigieren, damit `keys.push` funktioniert?
25+

0 commit comments

Comments
 (0)