Skip to content

Commit 514ff2e

Browse files
committed
#4 - Javascript
1 parent d88ae00 commit 514ff2e

File tree

1 file changed

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

1 file changed

+150
-0
lines changed
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+
* DIFICULTAD EXTRA (opcional):
9+
* Crea un programa que analice dos palabras diferentes y realice comprobaciones
10+
* para descubrir si son:
11+
* - Palíndromos
12+
* - Anagramas
13+
* - Isogramas
14+
*/
15+
16+
let myString = "Hola! JavaScript";
17+
18+
// Acceso
19+
console.log(myString[0]);
20+
console.log(myString[1]);
21+
console.log(myString[2]);
22+
23+
// at() retorna el caracter del indice indicado
24+
console.log(myString.at(-1));
25+
26+
// Subcadenas
27+
console.log(myString.substring(0, 8));
28+
29+
// Longitud
30+
console.log(myString.length);
31+
32+
// Concatenacion
33+
34+
let name = "Diego";
35+
let lastname = "Arenas";
36+
let fullname = name.concat(" ", lastname);
37+
38+
console.log(fullname);
39+
40+
// Repeticion
41+
console.log(name.repeat(10));
42+
43+
// Recorrer un string
44+
for (let i = 0; i < myString.length; i++) {
45+
console.log(myString[i]);
46+
}
47+
48+
// Conversion mayus y minus
49+
console.log(myString.toUpperCase());
50+
console.log(myString.toLowerCase());
51+
52+
// Reemplazar
53+
console.log(myString.replace("javascript", "JavaScript")); // Reemplaza la primera palabra que coincida con lo indicado pero solo esa
54+
console.log(myString.replaceAll("a", "!")); // Reemplaza todos los caracteres que coinciden
55+
56+
// Split
57+
const words = myString.split(" "); // devolvera un array, separarando elementos dado el string que se indicque
58+
console.log(words);
59+
60+
// Splice
61+
let newString = myString.slice(3, -3); // El método slice() extrae una sección de una cadena y devuelve una cadena nueva.
62+
console.log(newString);
63+
64+
// template literal
65+
console.log(`Mi nombre es ${name}`);
66+
67+
// Verificacion
68+
69+
// Busqueda
70+
71+
// search
72+
console.log(myString.search(/[aeiouáéíóú]/)); // sirve para buscar expresiones regulares si encuentra una coincidencia retorna el indice, si no -1
73+
74+
// includes
75+
console.log(myString.includes("la")); // Retorna true si incluye y false en caso contrario
76+
77+
// indexOf
78+
console.log(myString.indexOf("Java")); // Retorna el indice de una subcadena literal
79+
80+
// lastIndexOf
81+
console.log(myString.lastIndexOf("Java")); // Retorna el indice de una subcadena literal buscando desde el final hacia el inicio
82+
83+
// match
84+
const regex = /[A-Z]/g;
85+
const found = myString.match(regex); // devolvera un arrai con todas las expreciones regulares indicadas, en este caso todas las mayusculas
86+
console.log(found);
87+
88+
// matchAll
89+
// El método matchAll() retorna un iterador de todos los resultados de ocurrencia en una cadena de texto contra una expresión regular, incluyendo grupos de captura.
90+
const regexp = /t(e)(st(\d?))/g;
91+
const str = "test1test2";
92+
93+
const array = [...str.matchAll(regexp)];
94+
95+
console.log(array[0]);
96+
// Expected output: Array ["test1", "e", "st1", "1"]
97+
98+
console.log(array[1]);
99+
// Expected output: Array ["test2", "e", "st2", "2"]
100+
101+
/*
102+
* DIFICULTAD EXTRA (opcional):
103+
* Crea un programa que analice dos palabras diferentes y realice comprobaciones
104+
* para descubrir si son:
105+
* - Palíndromos
106+
* - Anagramas
107+
* - Isogramas
108+
*/
109+
110+
111+
const AnalizeWords = {
112+
reverseString: (str) => str.split("").reverse().join(""),
113+
sortString: (str) => str.split("").sort().join(""),
114+
isIsogram: function (str) {
115+
const listChars = str.split("").sort();
116+
const Counts = {};
117+
let result = true;
118+
for (const element of listChars) {
119+
if (Object.hasOwn(Counts, element)) {
120+
Counts[element] += 1;
121+
result = false;
122+
} else {
123+
Counts[element] = 1;
124+
}
125+
}
126+
return result ? `${str} es un Isograma` : `${str} no es un Isograma`;
127+
},
128+
isAnagram: function (word1, word2) {
129+
return this.sortString(word1) === this.sortString(word2)
130+
? `${word1} y ${word2} son un anagrama`
131+
: `${word1} y ${word2} no son un anagrama`;
132+
},
133+
isPalindrome: function (word) {
134+
return word === this.reverseString(word)
135+
? `${word} es un palindromo`
136+
: `${word} no es un palindromo`;
137+
},
138+
verify : function (word1, word2) {
139+
console.log(AnalizeWords.isPalindrome(word1));
140+
console.log(AnalizeWords.isPalindrome(word2));
141+
142+
console.log(AnalizeWords.isAnagram(word1, word2));
143+
144+
console.log(AnalizeWords.isIsogram(word1));
145+
console.log(AnalizeWords.isIsogram(word1));
146+
}
147+
};
148+
149+
console.log(AnalizeWords.verify("arroz", "zorra"));
150+

0 commit comments

Comments
 (0)