0% encontró este documento útil (0 votos)
34 vistas3 páginas

Banco de Ejercicios JavaScript

El documento presenta dos formas de implementar una función para determinar si una cadena es un palíndromo, utilizando un ciclo for para comparar caracteres o funciones incorporadas como split y reverse para invertir la cadena.

Cargado por

Kevin Herrera
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
34 vistas3 páginas

Banco de Ejercicios JavaScript

El documento presenta dos formas de implementar una función para determinar si una cadena es un palíndromo, utilizando un ciclo for para comparar caracteres o funciones incorporadas como split y reverse para invertir la cadena.

Cargado por

Kevin Herrera
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Banco de ejercicios JavaScript

1. Crear una función que valide si una palabra o frase dada, es un palíndromo (que se lee
igual en un sentido que en otro). mifuncion("Salas") devolverá true.

SOLUCION:

Utilizando ciclo for

function palindrome(str) {
// Paso [Link] primera parte es igual que la anterior
var re = /[^A-Za-z0-9]/g; // or var re = /[\W_]/g;
str = [Link]().replace(re, '');

// Paso 2. Crea el bucle FOR


var len = [Link]; // var len = "A man, a plan, a canal. Panama".length = 30

for (var i = 0; i < len/2; i++) {


if (str[i] !== str[len - 1 - i]) { // Siempre y cuando los caracteres de cada parte
coincidad, el bucle FOR debera seguir.
return false; // Cuando los caracteres ya no coinciden, false es regresado y salimos del
bucle FOR.
}
/* Aqui len/2 = 15
For each iteration: i = ? i < len/2 i++ if(str[i] !== str[len - 1 - i])?
1st iteration: 0 yes 1 if(str[0] !== str[15 - 1 - 0])? => if("a" !== "a")? // false
2nd iteration: 1 yes 2 if(str[1] !== str[15 - 1 - 1])? => if("m" !== "m")? // false
3rd iteration: 2 yes 3 if(str[2] !== str[15 - 1 - 2])? => if("a" !== "a")? // false
4th iteration: 3 yes 4 if(str[3] !== str[15 - 1 - 3])? => if("n" !== "n")? // false
5th iteration: 4 yes 5 if(str[4] !== str[15 - 1 - 4])? => if("a" !== "a")? // false
6th iteration: 5 yes 6 if(str[5] !== str[15 - 1 - 5])? => if("p" !== "p")? // false
7th iteration: 6 yes 7 if(str[6] !== str[15 - 1 - 6])? => if("l" !== "l")? // false
8th iteration: 7 yes 8 if(str[7] !== str[15 - 1 - 7])? => if("a" !== "a")? // false
9th iteration: 8 yes 9 if(str[8] !== str[15 - 1 - 8])? => if("n" !== "n")? // false
10th iteration: 9 yes 10 if(str[9] !== str[15 - 1 - 9])? => if("a" !== "a")? // false
11th iteration: 10 yes 11 if(str[10] !== str[15 - 1 - 10])? => if("c" !== "c")? // false
12th iteration: 11 yes 12 if(str[11] !== str[15 - 1 - 11])? => if("a" !== "a")? // false
13th iteration: 12 yes 13 if(str[12] !== str[15 - 1 - 12])? => if("n" !== "n")? // false
14th iteration: 13 yes 14 if(str[13] !== str[15 - 1 - 13])? => if("a" !== "a")? // false
15th iteration: 14 yes 15 if(str[14] !== str[15 - 1 - 14])? => if("l" !== "l")? // false
16th iteration: 15 no
End of the FOR Loop*/
}
return true; // Ambas partes son estrictamente iguales, y regresa true => La cadena de texto es un
palindromo.
}

palindrome("A man, a plan, a canal. Panama");

funciones incorporadas

function palindrome(str) {
// Paso 1. Pon en minuscula la cadena y usa el RexEXP para remover los caracteres no deseados
en el.
var re = /[\W_]/g; // or var re = /[^A-Za-z0-9]/g;

var lowRegStr = [Link]().replace(re, '');


// [Link]() = "A man, a plan, a canal. Panama".toLowerCase() = "a man, a plan, a canal.
panama"
// [Link](/[\W_]/g, '') = "a man, a plan, a canal. panama".replace(/[\W_]/g, '') =
"amanaplanacanalpanama"
// var lowRegStr = "amanaplanacanalpanama";

// Paso 2. Utiliza los métodos de encadenamiento con funciones integradas.


var reverseStr = [Link]('').reverse().join('');
// [Link]('') = "amanaplanacanalpanama".split('') = ["a", "m", "a", "n", "a", "p", "l", "a",
"n", "a", "c", "a", "n", "a", "l", "p", "a", "n", "a", "m", "a"]
// ["a", "m", "a", "n", "a", "p", "l", "a", "n", "a", "c", "a", "n", "a", "l", "p", "a", "n", "a", "m",
"a"].reverse() = ["a", "m", "a", "n", "a", "p", "l", "a", "n", "a", "c", "a", "n", "a", "l", "p", "a", "n", "a",
"m", "a"]
// ["a", "m", "a", "n", "a", "p", "l", "a", "n", "a", "c", "a", "n", "a", "l", "p", "a", "n", "a", "m",
"a"].join('') = "amanaplanacanalpanama"
// So, "amanaplanacanalpanama".split('').reverse().join('') = "amanaplanacanalpanama";
// And, var reverseStr = "amanaplanacanalpanama";

// Paso 3. Revisa si reverseStr es estrictamente igual a lorRegStr y regresa un BooLean


return reverseStr === lowRegStr; // "amanaplanacanalpanama" ===
"amanaplanacanalpanama"? => true
}

palindrome("A man, a plan, a canal. Panama");

También podría gustarte