/*
1.- Una función catalunya a la que le pasamos un código postal y nos devuelva true si el código postal pertenece a una provincia de Catalunya y false en caso contrario. catalunya(‘08001’)->true catalunya(‘26005’)->false
Pista: mirad a ver si hay algua función en JS ya hecha que nos diga si una cadena empieza con algo
2.- Una función normalizar a la que le pasamos una cadena que contiene una dirección
y nos busque si dentro de la dirección hay un código postal y si es así, nos lo elimine. Ejemplos:
normalizar(‘C/Balmes, 145′)->’C/Balmes, 145’
normalizar(‘C/Balmes, 145 cp 08012 Barcelona’)->’C/Balmes, 145′
normalizar(‘C/Balmes, 145 c.p. 08012′)->’C/Balmes, 145’
Solo buscamos las cadenas cp y c.p.
3.- Una función media que dada una frase me diga la longitud media de las palabras.
media(‘hola tú’)->3
La media es la suma de las longitudes dividida por el número de palabras
Pista: Recordad que con split partimos una cadena en elementos de array
4.- Una función vocales que nos diga las vocales que hay en una cadena.
Ej: vocales(‘hola que tal’)->5 vocales(‘miedo’)->3
No tengáis en cuenta acentos, pero no los pongáis en las pruebas
Pista: Yo crearía una función que me cuente cuantas veces aparece una cadena
dentro de otra
*/
function catalunya (codigo) { if (codigo.startsWith('08') || codigo.startsWith('17') || codigo.startsWith('25') || codigo.startsWith('43') ) { return true } else { return false } } function catalunyaShort (codigo) { return (codigo.startsWith('08') || codigo.startsWith('17') || codigo.startsWith('25') || codigo.startsWith('43') ) } function catalunya2 (codigo) { const comienzo = codigo.slice(0, 2) if (comienzo == '08' || comienzo == '17' || comienzo == '25' || comienzo == '43' ) { return true } else { return false } } function catalunya3 (codigo) { const cat = ['08', '17', '25', '43'] for (const v of cat) { if (codigo.startsWith(v)) { return true } } return false } function catalunya4 (codigo) { const cat = ['08', '17', '25', '43'] const comienzo = codigo.slice(0, 2) for (const v of cat) { if (comienzo == v) { return true } } return false } function normalizar (direccion) { let pos = direccion.indexOf('cp') if (pos > -1) { // Quitar de la cadena todo lo que hay después de la posición // Coger la cadena desde la posición 0 hasta la posición que ha encontrado direccion = direccion.slice(0, pos) } pos = direccion.indexOf('c.p.') if (pos > -1) { // Quitar de la cadena todo lo que hay después de la posición // Coger la cadena desde la posición 0 hasta la posición que ha encontrado direccion = direccion.slice(0, pos) } return direccion.trim() } function normalizar2 (direccion) { const cod = ['cp', 'c.p.'] for (const v of cod) { const pos = direccion.indexOf(v) if (pos > -1) { // Quitar de la cadena todo lo que hay después de la posición // Coger la cadena desde la posición 0 hasta la posición que ha encontrado direccion = direccion.slice(0, pos) } } return direccion.trim() } function media (cadena) { const palabras = cadena.split(' ') let totalLongitud = 0 for (let i = 0; i < palabras.length; i++) { totalLongitud += palabras[i].length } return totalLongitud / palabras.length } function media2 (cadena) { const sinEspacios = cadena.replace(/ /g, '') return sinEspacios.length / (cadena.length - sinEspacios.length + 1) } function vocales (cadena) { return apariciones(cadena, 'a') + apariciones(cadena, 'e') + apariciones(cadena, 'i') + apariciones(cadena, 'o') + apariciones(cadena, 'u') } function vocales2 (cadena) { const vocal = ['a', 'e', 'i', 'o', 'u'] total = 0 for (const v of vocal) { total += apariciones(cadena, v) } return total } function apariciones (cadena, buscar) { let cont = 0 let pos = cadena.indexOf(buscar) while (pos > -1) { cont++ pos = cadena.indexOf(buscar, pos + 1) } return cont }