Skip to content

Commit 6249f2a

Browse files
authored
Merge pull request #263 from vplentinax/mset
Map and Set
2 parents d0b203c + 7dcaca0 commit 6249f2a

File tree

6 files changed

+90
-69
lines changed

6 files changed

+90
-69
lines changed

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ let values = ["Hare", "Krishna", "Hare", "Krishna",
1919
"Krishna", "Krishna", "Hare", "Hare", ":-O"
2020
];
2121

22-
alert( unique(values) ); // Hare, Krishna, :-O
22+
alert( unique(values) ); // Hare, Krishna, :-O
2323
```
24+
2425
P.D. Aquí se usan strings, pero pueden ser valores de cualquier tipo.
2526

26-
P.D.S. Use `Set` para almacenar valores únicos.
2727

28+
29+
P.D.S. Use `Set` para almacenar valores únicos.

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
Para encontrar todos los anagramas, dividamos cada palabra en letras y las ordenamos. Cuando se clasifican las letras, todos los anagramas son iguales.
32

43
Por ejemplo:
@@ -10,7 +9,7 @@ cheaters, hectares, teachers -> aceehrst
109
...
1110
```
1211

13-
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:
1413

1514
```js run
1615
function aclean(arr) {
@@ -23,13 +22,15 @@ function aclean(arr) {
2322
*/!*
2423
map.set(sorted, word);
2524
}
25+
2626
return Array.from(map.values());
2727
}
2828

2929
let arr = ["nap", "teachers", "cheaters", "PAN", "ear", "era", "hectares"];
3030

3131
alert( aclean(arr) );
3232
```
33+
3334
La clasificación de letras se realiza mediante la cadena de llamadas en la línea `(*)`.
3435

3536
Por conveniencia la dividimos en múltiples líneas:
@@ -41,24 +42,23 @@ let sorted = arr[i] // PAN
4142
.sort() // ['a','n','p']
4243
.join(''); // anp
4344
```
45+
4446
Dos palabras diferentes`'PAN'` y `'nap'` reciben la misma forma ordenada por letras `'anp'`.
4547

4648
La siguiente línea pone la palabra en el Map:
4749

48-
4950
```js
5051
map.set(sorted, word);
5152
```
5253

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.
5455

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.
5657

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.
5859

5960
Así es como puede verse la solución:
6061

61-
6262
```js run demo
6363
function aclean(arr) {
6464
let obj = {};

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ Escriba una función `aclean(arr)` que devuelva un array limpio de anagramas.
1818

1919
Por ejemplo:
2020

21-
2221
```js
2322
let arr = ["nap", "teachers", "cheaters", "PAN", "ear", "era", "hectares"];
2423

2524
alert( aclean(arr) ); // "nap,teachers,ear" o "PAN,cheaters,era"
2625
```
26+
2727
Es decir, de cada grupo de anagramas debe quedar solo una palabra, sin importar cual.
2828

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Eso es porque `map.keys()` devuelve un iterable, pero no un array.
33

44
Podemos convertirlo en un array usando `Array.from`:
55

6+
67
```js run
78
let map = new Map();
89

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

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

33
---
44

5-
# Propiedades iterables
5+
# Claves iterables
66

7-
Nos gustaría obtener un array de `map.keys()` en una variable y luego aplicarle métodos específicos de array, ej. .push.
7+
Nos gustaría obtener un array de `map.keys()` en una variable y luego aplicarle métodos específicos de array, ej. `.push`.
88

99
Pero eso no funciona:
1010

@@ -22,4 +22,3 @@ keys.push("more");
2222
```
2323

2424
¿Por qué? ¿Cómo podemos arreglar el código para que funcione `keys.push`?
25-

0 commit comments

Comments
 (0)