Skip to content

Commit 1bde0c5

Browse files
authored
Merge branch 'master' into master
2 parents f74c8ae + f2ac3e2 commit 1bde0c5

File tree

7 files changed

+174
-192
lines changed

7 files changed

+174
-192
lines changed

1-js/02-first-steps/18-javascript-specials/article.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ Eso se llama "inserción automática de punto y coma". A veces no funciona, por
2222
```js run
2323
alert("Habrá un error después de este mensaje.")
2424

25-
2625
[1, 2].forEach(alert)
2726
```
2827

@@ -50,7 +49,6 @@ Para habilitar completamente todas las características de JavaScript moderno, d
5049

5150
```js
5251
'use strict';
53-
5452
...
5553
```
5654

@@ -70,7 +68,6 @@ Se pueden declarar usando:
7068
- `const` (constante, no se puede cambiar)
7169
- `var` (estilo antiguo, lo veremos más tarde)
7270

73-
7471
Un nombre de variable puede incluir:
7572
- Letras y dígitos, pero el primer carácter puede no ser un dígito.
7673
- Los caracteres `$` y `_` son normales, al igual que las letras.
@@ -151,9 +148,11 @@ Ternarios
151148
: El único operador con 3 parametros: `cond ? resultA : resultB`. Sí `cond` es verdadera, devuelve `resultA`, de lo contrario `resultB`.
152149

153150
Operadores Lógicos
151+
154152
: Los operadores lógicos Y `&&` y Ó `||` realizan una evaluación de circuito corto y luego devuelven el valor donde se detuvo. El operador lógico NOT `!` convierte el operando a tipo booleano y devuelve el valor inverso.
155153

156154
Comparaciones
155+
157156
: Revision de igualdad `==` para valores de diferentes tipos los convierte en un número (excepto `null` y `undefined` que son iguales entre sí y nada más), por lo que son iguales:
158157

159158
```js run
@@ -196,6 +195,7 @@ Más en: <info:operators>, <info:comparison>, <info:logical-operators>.
196195
```
197196

198197
- La variable declarada en el bucle `for(let...)` sólo es visible dentro del bucle. Pero también podemos omitir el `let` y reutilizar una variable existente.
198+
199199
- Directivas `break/continue` permiten salir de todo el ciclo/iteración actual. Use etiquetas para romper bucles anidados.
200200

201201
Detalles en: <info:while-for>.
@@ -213,8 +213,9 @@ let age = prompt('¿Su Edad?', 18);
213213
214214
switch (age) {
215215
case 18:
216-
alert("No funciona"); // el resultado de la petición es un string, no un número
217216
217+
alert("No funciona"); // el resultado de la petición es un string, no un número
218+
218219
case "18":
219220
alert("¡Funciona!");
220221
break;

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+
# Filtrar miembros únicos del array
66

7-
Let `arr` be an array.
7+
Permita que `arr` sea un array.
88

9-
Create a function `unique(arr)` that should return an array with unique items of `arr`.
9+
Cree una función `unique(arr)` que debería devolver un array con elementos únicos de `arr`.
1010

11-
For instance:
11+
Por ejemplo:
1212

1313
```js
1414
function unique(arr) {
15-
/* your code */
15+
/* tu código */
1616
}
1717

1818
let values = ["Hare", "Krishna", "Hare", "Krishna",
@@ -21,7 +21,7 @@ let values = ["Hare", "Krishna", "Hare", "Krishna",
2121

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

25-
P.S. Here strings are used, but can be values of any type.
26+
P.D.S. Use `Set` para almacenar valores únicos.
2627

27-
P.P.S. Use `Set` to store unique values.

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

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
To find all anagrams, let's split every word to letters and sort them. When letter-sorted, all anagrams are same.
21

3-
For instance:
2+
Para encontrar todos los anagramas, dividamos cada palabra en letras y las ordenamos. Cuando se clasifican las letras, todos los anagramas son iguales.
3+
4+
Por ejemplo:
45

56
```
67
nap, pan -> anp
@@ -9,55 +10,54 @@ cheaters, hectares, teachers -> aceehrst
910
...
1011
```
1112

12-
We'll use the letter-sorted variants as map keys to store only one value per each key:
13+
Utilizaremos las variantes ordenadas por letras como propiedades de Map para almacenar solo un valor por cada propiedad:
1314

1415
```js run
1516
function aclean(arr) {
1617
let map = new Map();
1718

1819
for (let word of arr) {
19-
// split the word by letters, sort them and join back
20+
// dividir la palabra por letras, ordenarlas y volver a unir
2021
*!*
2122
let sorted = word.toLowerCase().split('').sort().join(''); // (*)
2223
*/!*
2324
map.set(sorted, word);
2425
}
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+
La clasificación de letras se realiza mediante la cadena de llamadas en la línea `(*)`.
3334

34-
Letter-sorting is done by the chain of calls in the line `(*)`.
35-
36-
For convenience let's split it into multiple lines:
35+
Por conveniencia la dividimos en múltiples líneas:
3736

3837
```js
39-
let sorted = word // PAN
38+
let sorted = arr[i] // PAN
4039
.toLowerCase() // pan
4140
.split('') // ['p','a','n']
4241
.sort() // ['a','n','p']
4342
.join(''); // anp
4443
```
44+
Dos palabras diferentes`'PAN'` y `'nap'` reciben la misma forma ordenada por letras `'anp'`.
4545

46-
Two different words `'PAN'` and `'nap'` receive the same letter-sorted form `'anp'`.
46+
La siguiente línea pone la palabra en el Map:
4747

48-
The next line put the word into the map:
4948

5049
```js
5150
map.set(sorted, word);
5251
```
5352

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.
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+
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.
5556

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.
57+
Aquí también podríamos usar un objeto plano en lugar del `Map`, porque las propiedades son strings.
5758

58-
Here we could also use a plain object instead of the `Map`, because keys are strings.
59+
Así es como puede verse la solución:
5960

60-
That's how the solution can look:
6161

6262
```js run demo
6363
function aclean(arr) {

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

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,27 @@ importance: 4
22

33
---
44

5-
# Filter anagrams
5+
# Filtrar anagramas
66

7-
[Anagrams](https://en.wikipedia.org/wiki/Anagram) are words that have the same number of same letters, but in different order.
7+
[Anagramas](https://es.wikipedia.org/wiki/Anagrama) son palabras que tienen el mismo número de letras, pero en diferente orden.
88

9-
For instance:
9+
Por ejemplo:
1010

1111
```
1212
nap - pan
1313
ear - are - era
1414
cheaters - hectares - teachers
1515
```
1616

17-
Write a function `aclean(arr)` that returns an array cleaned from anagrams.
17+
Escriba una función `aclean(arr)` que devuelva un array limpio de anagramas.
18+
19+
Por ejemplo:
1820

19-
For instance:
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" o "PAN,cheaters,era"
2526
```
26-
27-
From every anagram group should remain only one word, no matter which one.
27+
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: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11

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`:
2+
Eso es porque `map.keys()` devuelve un iterable, pero no un array.
53

4+
Podemos convertirlo en un array usando `Array.from`:
65

76
```js run
87
let map = new Map();

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+
# Propiedades iterables
66

7-
We'd like to get an array of `map.keys()` in a variable and then do apply array-specific methods to it, e.g. `.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

9-
But that doesn't work:
9+
Pero eso no funciona:
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+
// Error: keys.push no es una función
2020
keys.push("more");
2121
*/!*
2222
```
2323

24-
Why? How can we fix the code to make `keys.push` work?
24+
¿Por qué? ¿Cómo podemos arreglar el código para que funcione `keys.push`?
25+

0 commit comments

Comments
 (0)