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/02-first-steps/18-javascript-specials/article.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,6 @@ Eso se llama "inserción automática de punto y coma". A veces no funciona, por
22
22
```js run
23
23
alert("Habrá un error después de este mensaje.")
24
24
25
-
26
25
[1, 2].forEach(alert)
27
26
```
28
27
@@ -50,7 +49,6 @@ Para habilitar completamente todas las características de JavaScript moderno, d
50
49
51
50
```js
52
51
'use strict';
53
-
54
52
...
55
53
```
56
54
@@ -70,7 +68,6 @@ Se pueden declarar usando:
70
68
-`const` (constante, no se puede cambiar)
71
69
-`var` (estilo antiguo, lo veremos más tarde)
72
70
73
-
74
71
Un nombre de variable puede incluir:
75
72
- Letras y dígitos, pero el primer carácter puede no ser un dígito.
76
73
- Los caracteres `$` y `_` son normales, al igual que las letras.
@@ -151,9 +148,11 @@ Ternarios
151
148
: El único operador con 3 parametros: `cond ? resultA : resultB`. Sí `cond` es verdadera, devuelve `resultA`, de lo contrario `resultB`.
152
149
153
150
Operadores Lógicos
151
+
154
152
: 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.
155
153
156
154
Comparaciones
155
+
157
156
: 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:
158
157
159
158
```js run
@@ -196,6 +195,7 @@ Más en: <info:operators>, <info:comparison>, <info:logical-operators>.
196
195
```
197
196
198
197
- 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
+
199
199
- Directivas `break/continue` permiten salir de todo el ciclo/iteración actual. Use etiquetas para romper bucles anidados.
200
200
201
201
Detalles en:<info:while-for>.
@@ -213,8 +213,9 @@ let age = prompt('¿Su Edad?', 18);
213
213
214
214
switch (age) {
215
215
case 18:
216
-
alert("No funciona"); // el resultado de la petición es un string, no un número
217
216
217
+
alert("No funciona"); // el resultado de la petición es un string, no un número
Copy file name to clipboardExpand all lines: 1-js/05-data-types/07-map-set/02-filter-anagrams/solution.md
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff 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.
2
1
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.
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:
13
14
14
15
```js run
15
16
functionaclean(arr) {
16
17
let map =newMap();
17
18
18
19
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
20
21
*!*
21
22
let sorted =word.toLowerCase().split('').sort().join(''); // (*)
22
23
*/!*
23
24
map.set(sorted, word);
24
25
}
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
+
La clasificación de letras se realiza mediante la cadena de llamadas en la línea `(*)`.
33
34
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:
37
36
38
37
```js
39
-
let sorted =word// PAN
38
+
let sorted =arr[i]// PAN
40
39
.toLowerCase() // pan
41
40
.split('') // ['p','a','n']
42
41
.sort() // ['a','n','p']
43
42
.join(''); // anp
44
43
```
44
+
Dos palabras diferentes`'PAN'` y `'nap'` reciben la misma forma ordenada por letras `'anp'`.
45
45
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:
47
47
48
-
The next line put the word into the map:
49
48
50
49
```js
51
50
map.set(sorted, word);
52
51
```
53
52
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.
55
56
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.
57
58
58
-
Here we could also use a plain object instead of the `Map`, because keys are strings.
0 commit comments