Hoy vamos a ver cómo encontrar la palabra más larga (con mayor longitud) dentro de una oración, cadena o string usando JavaScript.
Es decir, a partir de una simple cadena vamos a encontrar la subcadena más larga que exista dentro de la misma.
El problema dice así:
Escribe una función JavaScript que acepte una cadena como parámetro y encuentre la palabra más larga dentro de la cadena.
Para ello vamos a usar split y un simple algoritmo que recorre las palabras y va comparando.
Explicación del algoritmo
Primero convertimos la cadena a arreglo, ya te dije cómo anteriormente.
Luego definimos la palabra más larga, que al inicio de todo será la primera palabra del arreglo. Esto es solo para inicializarla, solo estamos intuyendo; ya que la variable debe tener un valor inicialmente.
Ahora recorremos las palabras. Por cada palabra comparamos si la misma es más larga que la cadena más larga hasta el momento, y en caso de que sí entonces ahora la palabra más larga hasta el momento es la palabra actual.
Al final de todo regresamos la palabra más larga, que va a contener la más larga de todo el arreglo pues para ese punto ya habremos terminado de recorrerlo.
Por cierto, para comparar la longitud de la cadena simplemente vamos a comparar la propiedad length
.
Palabra más larga de cadena en JS
Veamos el código, queda como se ve a continuación:
const palabraMasLarga = cadena => {
// https://parzibyte.me/blog
// Separar por espacios
const separadaPorEspacios = cadena.split(" ");
// Suponer que la palabra más larga es la primera, para poder inicializar la variable
let palabraMasLarga = separadaPorEspacios[0];
// Recorrer e ir comparando
for (const palabra of separadaPorEspacios) {
if (palabra.length >= palabraMasLarga.length) {
palabraMasLarga = palabra;
}
}
return palabraMasLarga;
};
Primero la separamos para convertirla en arreglo, luego inicializamos la variable de la palabra más larga. Ahora recorremos y comparamos en la línea 8 hasta la 12..
El modo de uso es como se ve a continuación:
const palabraMasLarga = cadena => {
// https://parzibyte.me/blog
// Separar por espacios
const separadaPorEspacios = cadena.split(" ");
// Suponer que la palabra más larga es la primera, para poder inicializar la variable
let palabraMasLarga = separadaPorEspacios[0];
// Recorrer e ir comparando
for (const palabra of separadaPorEspacios) {
if (palabra.length >= palabraMasLarga.length) {
palabraMasLarga = palabra;
}
}
return palabraMasLarga;
};
const oracion = "Me gusta programar en JavaScript aprendiendo en el blog de Parzibyte";
const palabra = palabraMasLarga(oracion);
console.log("La oración es: ");
console.log(oracion);
console.log("La palabra más larga es: ");
console.log(palabra);
Al ejecutarla, el resultado es correcto:
Y así es como podemos obtener la cadena más larga de una oración o string en JavaScript. Todo esto funciona en el navegador o en el servidor con Node.
Para terminar te dejo con más tutoriales de JavaScript en mi blog.