Ya que andamos viendo cómo trabajar con cadenas en JavaScript, analicemos cómo podemos comprobar si una cadena comienza con una vocal en JavaScript.
Es algo realmente sencillo e incluso podría tomarse como un repollo (repost) de otro post anterior. Sin embargo, prefiero hacerlo por si alguien se quedó con la duda; cuando uno es novato no sabe cosas obvias.
Antes de seguir, si tienes poca experiencia con este lenguaje te invito a que estudies más con los siguientes posts:
Dejo la función o método y más abajo la explicamos.
const comienzaConVocal = (cadena) => {
if (!cadena || cadena.length <= 0) return false;
// Convertir a minúscula porque las vocales con las que la compararemos están
// en minúscula
let cadenaEnMinuscula = cadena.toLowerCase();
let primerCaracter = cadenaEnMinuscula.charAt(0);
// Vamos a buscar si el carácter está en este arreglo
const vocales = ["a", "e", "i", "o", "u"];
// indexOf devuelve -1 si no encuentra el carácter en el arreglo
// y si lo encuentra, devuelve el índice o posición, pero eso no nos importa ahora
if (vocales.indexOf(primerCaracter) === -1) {
return false;
} else {
return true;
}
}
¿Qué hacemos? bueno, primero debemos tener a la palabra que nos manden en minúscula, ya que al compararla la vamos a comparar con vocales minúsculas.
Luego, extraemos la primera letra de la cadena. Declaramos un arreglo de vocales y buscamos dentro de ese arreglo usando indexOf.
La función indexOf devuelve el índice de la letra en el arreglo.
Por ejemplo, si la letra es a entonces devolverá 0, si la letra es e devolverá 1 y si es u devolverá 4; si no coincide o no encuentra la letra entonces devolverá -1.
Justamente de eso nos aprovechamos, ya que si devuelve -1 significa que la primera letra no es una vocal, y por lo tanto la palabra no comienza con vocal.
Podemos probar a la función más tarde con este código:
// Esto es para probar
const palabras = [
"Hola", "Perro", "Maggie", "Saludos", "Avión",
"Pájaro", "Saúl", "Estado", "Ornitorrinco", "Iglú",
"unión", "uniones", "ejemplo",
];
palabras.forEach(palabra => {
console.log("¿%s comienza con vocal? %s", palabra, comienzaConVocal(palabra));
});
Lo ejecutamos y aquí está la salida, la cual a mi parecer es correcta:
Si eres un ninja de JavaScript y quieres no entender a tu código más tarde, aquí dejo esta función más corta. Es lo mismo que arriba pero con algunas “optimizaciones”.
Puedes usarla, pero recuerda que antes de ello debes entenderla, si no, mejor usa la de arriba.
const comienzaConVocal = cadena => ["a", "e", "i", "o", "u"].indexOf((cadena || "").toLowerCase().charAt(0)) !== -1;
Espero que sirva para estudiar cómo podemos escribir menos líneas de código.
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…
Esta web usa cookies.