Skip to content

Commit 239cae7

Browse files
authored
Merge pull request #7924 from ralphmcralph/reto-4
#4 - javascript
2 parents 3cf1fbd + 058e690 commit 239cae7

File tree

1 file changed

+150
-0
lines changed

1 file changed

+150
-0
lines changed
Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
/*
2+
* EJERCICIO:
3+
* Muestra ejemplos de todas las operaciones que puedes realizar con cadenas de caracteres
4+
* en tu lenguaje. Algunas de esas operaciones podrían ser (busca todas las que puedas):
5+
* - Acceso a caracteres específicos, subcadenas, longitud, concatenación, repetición, recorrido,
6+
* conversión a mayúsculas y minúsculas, reemplazo, división, unión, interpolación, verificación...
7+
*
8+
*/
9+
10+
11+
// Acceso a caracteres específicos
12+
let cadena = "Hola mundo";
13+
14+
console.log(cadena[0]); // H
15+
16+
// Subcadenas
17+
18+
console.log(cadena.substring(0, 4)); // Hola
19+
20+
// Longitud
21+
22+
console.log(cadena.length); // 10
23+
24+
// Concatenación
25+
26+
let cadena2 = " desde JavaScript";
27+
28+
console.log(cadena + cadena2); // Hola mundo desde JavaScript
29+
30+
// Repetición
31+
32+
console.log(cadena.repeat(3)); // Hola mundoHola mundoHola mundo
33+
34+
// Recorrido
35+
36+
for (let i = 0; i < cadena.length; i++) {
37+
console.log(cadena[i]);
38+
}
39+
40+
// Conversión a mayúsculas y minúsculas
41+
42+
console.log(cadena.toUpperCase()); // HOLA MUNDO
43+
44+
console.log(cadena.toLowerCase()); // hola mundo
45+
46+
// Reemplazo
47+
48+
console.log(cadena.replace("mundo", "amigos")); // Hola amigos
49+
50+
// División
51+
52+
console.log(cadena.split(" ")); // ["Hola", "mundo"]
53+
54+
// Unión
55+
56+
console.log(["Hola", "mundo"].join(" ")); // Hola mundo
57+
58+
// Interpolación
59+
60+
let nombre = "Ralph";
61+
62+
console.log(`Hola ${nombre}`); // Hola Ralph
63+
64+
// Verificación
65+
66+
console.log(cadena.includes("mundo")); // true
67+
68+
console.log(cadena.startsWith("Hola")); // true
69+
70+
console.log(cadena.endsWith("mundo")); // true
71+
72+
console.log(cadena.indexOf("mundo")); // 5
73+
74+
console.log(cadena.lastIndexOf("o")); // 7
75+
76+
console.log(cadena.search("mundo")); // 5
77+
78+
console.log(cadena.match(/o/g)); // ["o", "o", "o"]
79+
80+
console.log(cadena.match(/o/g).length); // 3
81+
82+
/* DIFICULTAD EXTRA(opcional):
83+
* Crea un programa que analice dos palabras diferentes y realice comprobaciones
84+
* para descubrir si son:
85+
* - Palíndromos
86+
* - Anagramas
87+
* - Isogramas
88+
*/
89+
90+
let palabra1 = "Yuxtaponer"
91+
let palabra2 = "Radar"
92+
93+
function isPalindrome(word) {
94+
95+
word = word.toLowerCase();
96+
97+
return word === word.split("").reverse().join("");
98+
99+
}
100+
101+
function printResult(word) {
102+
console.log(isPalindrome(word) ? `La palabra ${word.toLowerCase()} es un palíndromo` : `La palabra ${word.toLowerCase()} no es un palíndromo`);
103+
}
104+
105+
106+
printResult(palabra1);
107+
printResult(palabra2);
108+
109+
// Anagrama
110+
111+
function isAnagram(word1, word2) {
112+
113+
return word1.toLowerCase().split("").sort().join("") === word2.toLowerCase().split("").sort().join("");
114+
115+
}
116+
117+
console.log(isAnagram(palabra1, palabra2) ? `${palabra1} es un anagrama de ${palabra2.toLowerCase()}` : `${palabra1} no es un anagrama de ${palabra2.toLowerCase()}`);
118+
119+
// Isograma
120+
121+
function isIsogram(word) {
122+
123+
letterCounter = new Map();
124+
125+
word.toLowerCase().split("").forEach(letter => {
126+
if (letterCounter.get(letter)) {
127+
128+
letterCounter.set(letter, letterCounter.get(letter) + 1)
129+
130+
} else {
131+
letterCounter.set(letter, 1);
132+
}
133+
}
134+
);
135+
136+
const uniqueValues = new Set(letterCounter.values());
137+
138+
return uniqueValues.size === 1;
139+
140+
}
141+
142+
console.log(isIsogram(palabra1) ? `La palabra ${palabra1.toLowerCase()} es un isograma` : `La palabra ${palabra1.toLowerCase()} no es un isograma`);
143+
144+
console.log(isIsogram(palabra2) ? `La palabra ${palabra2.toLowerCase()} es un isograma` : `La palabra ${palabra2.toLowerCase()} no es un isograma`);
145+
146+
147+
148+
149+
150+

0 commit comments

Comments
 (0)