Skip to content

Commit 9532e41

Browse files
committed
mouredev#4 JavaScript gianbordon
1 parent ed693f2 commit 9532e41

File tree

1 file changed

+242
-0
lines changed

1 file changed

+242
-0
lines changed
Lines changed: 242 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
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+
//
17+
// STRINGS
18+
//
19+
20+
// Declaracion
21+
22+
let myStr = "Soy un strig con comillas dobles"
23+
let myStrr = 'Soy un string con comillas simple'
24+
let myStrrr = `Soy un string con backsticks`
25+
26+
console.log(myStr)
27+
console.log(myStrr)
28+
console.log(myStrrr)
29+
30+
//
31+
// METODOS
32+
//
33+
34+
// charAt()
35+
const ejemploCharAt = "Hola mundo"; // Devuelve el caracter en la posicion indicada
36+
console.log('Caracter buscado mediante la posicion: ',ejemploCharAt.charAt(2));
37+
console.log('Caracter buscado mediante la posicion: ',ejemploCharAt.charAt(7));
38+
39+
//charCodeAt()
40+
const ejemploCharCodeAt = "Hola"; // Devuelve el valor UTF-16 del carácter en la posición indicada.
41+
console.log(ejemploCharCodeAt.charCodeAt(0));
42+
43+
// codePointAt()
44+
const ejemploCodePointAt = "A"; // Devuelve el valor Unicode del punto de código en la posición dada.
45+
console.log(ejemploCodePointAt.codePointAt(0));
46+
47+
// concat()
48+
const ejemploConcat = "Hola, ".concat("Gianfranco", "!"); // Concatena (une) una o más cadenas.
49+
console.log(ejemploConcat);
50+
51+
// includes()
52+
const ejemploIncludes = "JavaScript es genial"; // Verifica si la cadena contiene la subcadena especificada.
53+
console.log(ejemploIncludes.includes("genial"));
54+
55+
// endsWith()
56+
const ejemploEndsWith = "Hola mundo"; // Verifica si la cadena termina con la subcadena especificada.
57+
console.log(ejemploEndsWith.endsWith("mundo"));
58+
59+
// indexOf()
60+
const ejemploIndexOf = "banana"; // Devuelve la posición de la primera ocurrencia del valor indicado.
61+
console.log(ejemploIndexOf.indexOf("a"));
62+
63+
// lastIndexOf()
64+
const ejemploLastIndexOf = "banana"; // Devuelve la posición de la última ocurrencia del valor indicado.
65+
console.log(ejemploLastIndexOf.lastIndexOf("a"));
66+
67+
// localCompare()
68+
const ejemploLocaleCompare = "café"; // Compara dos cadenas según la configuración regional.
69+
console.log(ejemploLocaleCompare.localeCompare("cafe"));
70+
71+
// match()
72+
const ejemploMatch = "Hoy es 17 de abril"; // Devuelve las coincidencias de una expresión regular.
73+
console.log(ejemploMatch.match(/\d+/));
74+
75+
// matchAll()
76+
const ejemploMatchAll = "uno, dos, tres"; // Devuelve un iterador con todas las coincidencias de una expresión regular.
77+
const matches = [...ejemploMatchAll.matchAll(/\w+/g)];
78+
console.log(matches.map(m => m[0]));
79+
80+
// normalize()
81+
const ejemploNormalize = "\u004e\u006f\u0072\u006d\u0061\u006c\u0065"; // Normaliza una cadena en su forma Unicode.
82+
console.log(ejemploNormalize.normalize());
83+
84+
// padEnd()
85+
const ejemploPadEnd = "123"; // Agrega caracteres al final de la cadena hasta llegar a la longitud deseada.
86+
console.log(ejemploPadEnd.padEnd(6, "0"));
87+
88+
// padStart()
89+
const ejemploPadStart = "45"; // Agrega caracteres al inicio de la cadena hasta llegar a la longitud deseada.
90+
console.log(ejemploPadStart.padStart(5, "0"));
91+
92+
// repeat()
93+
const ejemploRepeat = "ha"; // Repite la cadena la cantidad de veces indicada.
94+
console.log(ejemploRepeat.repeat(3));
95+
96+
// replace()
97+
const ejemploReplace = "Me gusta el pan"; // Reemplaza la primera aparición de una subcadena.
98+
console.log(ejemploReplace.replace("pan", "queso"));
99+
100+
// replaceAll()
101+
const ejemploReplaceAll = "Hola mundo mundo mundo"; // Reemplaza todas las apariciones de una subcadena.
102+
console.log(ejemploReplaceAll.replaceAll("mundo", "universo"));
103+
104+
// search()
105+
const ejemploSearch = "El número 42 es especial"; // Devuelve el índice de la primera coincidencia con una expresión regular.
106+
console.log(ejemploSearch.search(/\d+/));
107+
108+
// slice()
109+
const ejemploSlice = "JavaScript"; // Devuelve una porción de la cadena desde beginIndex hasta endIndex (sin incluirlo).
110+
console.log(ejemploSlice.slice(4, 10));
111+
112+
// split()
113+
const ejemploSplit = "manzana,banana,pera"; // Divide la cadena en un array usando un separador.
114+
console.log(ejemploSplit.split(","));
115+
116+
// startsWith()
117+
const ejemploStartsWith = "Buenos días"; // Verifica si la cadena comienza con la subcadena indicada.
118+
console.log(ejemploStartsWith.startsWith("Buenos"));
119+
120+
// substring()
121+
const ejemploSubstring = "JavaScript"; // Devuelve los caracteres entre dos índices (sin incluir indexEnd).
122+
console.log(ejemploSubstring.substring(4, 10));
123+
124+
// toLowerCase()
125+
const ejemploToLowerCase = "HOLA MUNDO"; // Convierte toda la cadena a minúsculas.
126+
console.log(ejemploToLowerCase.toLowerCase());
127+
128+
// toString()
129+
const ejemploToString = 12345; // Devuelve una representación en forma de cadena del objeto.
130+
console.log(ejemploToString.toString());
131+
132+
// toUpperCase()
133+
const ejemploToUpperCase = "hola mundo"; // Convierte toda la cadena a mayúsculas.
134+
console.log(ejemploToUpperCase.toUpperCase());
135+
136+
// trim()
137+
const ejemploTrim = " espacio "; // Elimina espacios en blanco al inicio y al final de la cadena.
138+
console.log(ejemploTrim.trim());
139+
140+
// trimStart()
141+
const ejemploTrimStart = " inicio"; // Elimina espacios al comienzo de la cadena.
142+
console.log(ejemploTrimStart.trimStart());
143+
144+
// trimEnd()
145+
const ejemploTrimEnd = "fin "; // Elimina los espacios en blanco al final de la cadena.
146+
console.log(ejemploTrimEnd.trimEnd());
147+
148+
// valueOf()
149+
const ejemploValueOf = new String("valor primitivo"); // Devuelve el valor primitivo de un objeto String.
150+
console.log(ejemploValueOf.valueOf());
151+
152+
// @@iterador()
153+
const ejemploIterator = "hola"; // Permite recorrer los caracteres de una cadena con un iterador.
154+
for (const letra of ejemploIterator[Symbol.iterator]()) {
155+
console.log(letra);
156+
}
157+
158+
//
159+
// Metodos que funcionan como propiedades internas o funciones
160+
//
161+
162+
// Acceder al carácter con notación de corchete (similar a charAt)
163+
const ejemploBracket = "cadena";
164+
console.log(ejemploBracket[2]);
165+
166+
// Comparación de cadenas con ===
167+
const str1 = "abc";
168+
const str2 = "abc";
169+
console.log(str1 === str2);
170+
171+
// .length
172+
const ejemploLength = "longitud"; // Longitud de una cadena.
173+
console.log(ejemploLength.length);
174+
175+
//
176+
// EXTRA
177+
//
178+
179+
function compareString(str1, str2) {
180+
const a = str1.toLowerCase();
181+
const b = str2.toLowerCase();
182+
183+
console.log('🔄 Palabras comparadas:', a, '-', b);
184+
185+
console.log('* ¿Es Palíndroma? *');
186+
if (isPalindromo(a)) {
187+
console.log(`✅ La palabra "${a}" es palíndroma.`);
188+
} else {
189+
console.log(`❌ La palabra "${a}" no es palíndroma.`);
190+
}
191+
if (isPalindromo(b)) {
192+
console.log(`✅ La palabra "${b}" es palíndroma.`);
193+
} else {
194+
console.log(`❌ La palabra "${b}" no es palíndroma.`);
195+
}
196+
197+
console.log('* ¿Son Anagramas entre sí? *');
198+
if (isAnagrama(a, b)) {
199+
console.log(`✅ Las palabras "${a}" y "${b}" son anagramas entre sí.`);
200+
} else {
201+
console.log(`❌ Las palabras "${a}" y "${b}" no son anagramas entre sí.`);
202+
}
203+
204+
console.log('* ¿Es Isograma? *');
205+
if (isIsograma(a)) {
206+
console.log(`✅ La palabra "${a}" es un isograma.`);
207+
} else {
208+
console.log(`❌ La palabra "${a}" no es un isograma.`);
209+
}
210+
if (isIsograma(b)) {
211+
console.log(`✅ La palabra "${b}" es un isograma.`);
212+
} else {
213+
console.log(`❌ La palabra "${b}" no es un isograma.`);
214+
}
215+
216+
console.log('------------------------------');
217+
}
218+
219+
function isPalindromo(str) {
220+
return str === str.split("").reverse().join("")
221+
}
222+
function isAnagrama(str1,str2){
223+
return str1.split('').sort().join('') === str2.split('').sort().join('');
224+
}
225+
function isIsograma(str){
226+
for (let i = 0; i < str.length; i++) {
227+
for (let j = i + 1; j < str.length; j++) {
228+
if (str[i] === str[j]) {
229+
return false;
230+
}}}
231+
return true;
232+
}
233+
234+
// 🧪 Casos de prueba
235+
compareString("reconocer", "reconocer");
236+
compareString("anita", "atina");
237+
compareString("murcielago", "pantheon");
238+
compareString("abc", "cab");
239+
compareString("banana", "perro");
240+
compareString("radar", "luz");
241+
compareString("gato", "gaga");
242+
compareString("amor", "roma");

0 commit comments

Comments
 (0)