Funciones puras
Una función a la que le pasemos una cadena y nos devuelva la palabra más larga
masLarga(‘hola que tal estamos’)-> ‘estamos’
Una función a la que le pasemos una cadena y nos cuente las consonantes
consonantes(‘praga’)->3
Una función a la que le pasemos una cadena y nos devuelva la palabra con más consonantes
masConsonantes(‘praga es guay’)->’praga’
function masLarga (cadena) {
// Si yo tengo una cadena y quiero las palabras lo primero es obtenerlas
const palabras = cadena.split(' ')
// Necesitaré algún sitio donde guardar la palabra más larga
let larga = ''
// Recorrer la lista de palabras a ver cual es la de mayor longitud
for (let i = 0; i < palabras.length; i++) {
// Si la longitud de la palabra actual es mayor que la que tengo
if (palabras[i].length > larga.length) {
larga = palabras[i]
}
}
return larga
}
function masLargaSort (cadena) {
const palabras = cadena.split(' ')
palabras.sort((a, b) => b.length - a.length)
return palabras[0]
}
function consonantes (cadena) {
const vocales = vocales2(cadena)
return cadena.length - vocales
}
// 'praga' split('') letra a letra slice/substr/subtring cadena[i]
function consonantes2 (cadena) {
const cons = 'bcdfghjklmnñpqrstvwxyz'
cadena = cadena.toLowerCase()
let total = 0
for (let i = 0; i < cadena.length; i++) {
// Si la letra está dentro de mis consonantes
if (cons.indexOf(cadena.slice(i, i + 1)) > -1) {
total++
}
}
return total
}
function consonantesReg (cadena) {
cadena = cadena.replace(/[^bcdfghjklmnñpqrstvwxyz]/gi, '')
// cadena = cadena.replace(/[aeiou]/gi, '')
return cadena.length
}
function masConsonantes (cadena) {
// Si yo tengo una cadena y quiero las palabras lo primero es obtenerlas
const palabras = cadena.split(' ')
// Necesitaré algún sitio donde guardar la palabra con más consonantes
let masC = ''
// Recorrer la lista de palabras a ver cual es la de mayor longitud
for (let i = 0; i < palabras.length; i++) {
// Si las consoncantes de la palabra actual son más que la que tengo
if (consonantesReg(palabras[i]) > consonantesReg(masC)) {
masC = palabras[i]
}
}
return masC
}
function masConsonantesSort (cadena) {
const palabras = cadena.split(' ')
palabras.sort((a, b) => consonantesReg(b) - consonantesReg(a))
return palabras[0]
}
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
}