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
Copy file name to clipboardExpand all lines: 1-js/05-data-types/07-map-set/02-filter-anagrams/solution.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,3 @@
1
-
2
1
Para encontrar todos los anagramas, dividamos cada palabra en letras y las ordenamos. Cuando se clasifican las letras, todos los anagramas son iguales.
Utilizaremos las variantes ordenadas por letras como propiedades de Map para almacenar solo un valor por cada propiedad:
12
+
Utilizaremos las variantes ordenadas por letras como claves de Map para almacenar solo un valor por cada clave:
14
13
15
14
```js run
16
15
functionaclean(arr) {
@@ -23,13 +22,15 @@ function aclean(arr) {
23
22
*/!*
24
23
map.set(sorted, word);
25
24
}
25
+
26
26
returnArray.from(map.values());
27
27
}
28
28
29
29
let arr = ["nap", "teachers", "cheaters", "PAN", "ear", "era", "hectares"];
30
30
31
31
alert( aclean(arr) );
32
32
```
33
+
33
34
La clasificación de letras se realiza mediante la cadena de llamadas en la línea `(*)`.
34
35
35
36
Por conveniencia la dividimos en múltiples líneas:
@@ -41,24 +42,23 @@ let sorted = arr[i] // PAN
41
42
.sort() // ['a','n','p']
42
43
.join(''); // anp
43
44
```
45
+
44
46
Dos palabras diferentes`'PAN'` y `'nap'` reciben la misma forma ordenada por letras `'anp'`.
45
47
46
48
La siguiente línea pone la palabra en el Map:
47
49
48
-
49
50
```js
50
51
map.set(sorted, word);
51
52
```
52
53
53
-
Si alguna vez volvemos a encontrar una palabra con la misma forma ordenada por letras, sobrescribiría el valor anterior con la misma propiedad en Map. Por lo tanto, siempre tendremos como máximo una palabra ordenada por letras.
54
+
Si alguna vez volvemos a encontrar una palabra con la misma forma ordenada por letras, sobrescribiría el valor anterior con la misma clave en Map. Por lo tanto, siempre tendremos como máximo una palabra ordenada por letras.
54
55
55
-
Al final, `Array.from (map.values())` toma un valor iterativo sobre los valores de Map (no necesitamos propiedades en el resultado) y devuelve un array de ellos.
56
+
Al final, `Array.from (map.values())` toma un valor iterativo sobre los valores de Map (no necesitamos claves en el resultado) y devuelve un array de ellos.
56
57
57
-
Aquí también podríamos usar un objeto plano en lugar del `Map`, porque las propiedades son strings.
58
+
Aquí también podríamos usar un objeto plano en lugar del `Map`, porque las claves son strings.
0 commit comments