Skip to content

Commit 90853de

Browse files
committed
#4 - Javascript
1 parent 5aca86b commit 90853de

File tree

1 file changed

+111
-0
lines changed
  • Roadmap/04 - CADENAS DE CARACTERES/javascript

1 file changed

+111
-0
lines changed
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
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+
* DIFICULTAD EXTRA (opcional):
9+
* Crea un programa que analice dos palabras diferentes y realice comprobaciones
10+
* para descubrir si son:
11+
12+
* - Palíndromos
13+
* - Anagramas
14+
* - Isogramas
15+
*/
16+
17+
// Acceso a caracteres específicos
18+
let cadena = "Hola, mundo!";
19+
console.log(cadena[0]); // Muestra "H"
20+
console.log(cadena.charAt(7)); // Muestra "m"
21+
22+
// Subcadenas
23+
let subcadena = cadena.substring(6, 11);
24+
console.log(subcadena); // Muestra "mundo"
25+
26+
// Longitud de la cadena
27+
console.log(cadena.length); // Muestra 12
28+
29+
// Concatenación
30+
let otraCadena = " Qué tal?";
31+
let resultadoConcatenacion = cadena + otraCadena;
32+
console.log(resultadoConcatenacion); // Muestra "Hola, mundo! Qué tal?"
33+
34+
// Repetición
35+
let cadenaRepetida = cadena.repeat(3);
36+
console.log(cadenaRepetida); // Muestra "Hola, mundo!Hola, mundo!Hola, mundo!"
37+
38+
// Recorrido
39+
for (let i = 0; i < cadena.length; i++) {
40+
console.log(cadena[i]);
41+
}
42+
43+
// Conversión a mayúsculas y minúsculas
44+
console.log(cadena.toUpperCase()); // Muestra "HOLA, MUNDO!"
45+
console.log(cadena.toLowerCase()); // Muestra "hola, mundo!"
46+
47+
// Reemplazo
48+
let nuevaCadena = cadena.replace("mundo", "amigo");
49+
console.log(nuevaCadena); // Muestra "Hola, amigo!"
50+
51+
// División
52+
let palabras = cadena.split(", ");
53+
console.log(palabras); // Muestra ["Hola", "mundo!"]
54+
55+
// Unión
56+
let nuevaCadenaUnida = palabras.join(" ");
57+
console.log(nuevaCadenaUnida); // Muestra "Hola mundo!"
58+
59+
// Interpolación
60+
let nombre = "Cristian";
61+
let edad = 21;
62+
console.log(`Mi nombre es ${nombre} y tengo ${edad} años.`);
63+
64+
// Verificación
65+
console.log(cadena.includes("mundo")); // Devuelve true
66+
console.log(cadena.startsWith("Hola")); // Devuelve true
67+
console.log(cadena.endsWith("!")); // Devuelve true
68+
69+
// Dificultad extra
70+
71+
const transformString = (myString) => {
72+
return myString.replace(/\s/g, "").toLowerCase();
73+
};
74+
75+
const isPalindrome = (myString) => {
76+
const myWord = transformString(myString);
77+
myWord === Array.from(myWord).reverse().join("")
78+
? console.log(`${myString} es un Palíndromo`)
79+
: console.log(`${myString} no es un Palíndromo`);
80+
};
81+
82+
const isAnagram = (myString1, myString2) => {
83+
const myWord1 = transformString(myString1);
84+
const myWord2 = transformString(myString2);
85+
if (myWord1.length === myWord2.length) {
86+
const isAnagram = Array.from(myWord1).every((char) =>
87+
myWord2.includes(char)
88+
);
89+
isAnagram
90+
? console.log(`${myString1} y ${myString2} son Anagramas`)
91+
: console.log(`${myString1} y ${myString2} no son Anagramas`);
92+
}
93+
};
94+
95+
const isIsogram = (myString) => {
96+
const myWord = transformString(myString);
97+
const letter = myWord.split("").sort();
98+
for (let index = 0; index < letter.length; index++) {
99+
if (letter[index] === letter[index + 1]) {
100+
return console.log(`${myString} no es un Isograma`);
101+
}
102+
}
103+
return console.log(`${myString} es un Isograma`);
104+
};
105+
106+
isPalindrome("Oso");
107+
isPalindrome("Casa");
108+
isAnagram("Roma", "Amor");
109+
isAnagram("Rojo", "Verde");
110+
isIsogram("Cristian");
111+
isIsogram("Hamburguesa");

0 commit comments

Comments
 (0)