Estoy construyendo un algoritmo propio que se supone que devuelve la palabra más larga de una oración con javascript. El algoritmo personalizado está compilando pero devolviendo una cadena incorrecta. Estoy tratando de resolver problemas de programación sin plagiar, así que por favor ayuda...
lógica
a) Forme una matriz a partir de la oración usando la .split(" ") .
b) Definir un index variable que se utilizará para almacenar el índice del elemento con la mayor longitud
c) Defina una cadena predeterminada mystring que usaremos para las comparaciones en el ciclo
d) Iterar a través de la matriz que formamos en el paso mientras comparamos cada cadena en cada índice con nuestra variable mystring , si la cadena en la posición especificada es más grande que nuestra mystring , obtenemos el índice de esa cadena y lo almacenamos en la variable index . .
e) Devolvemos la cadena en el index de la matriz que obtuvimos del ciclo
Expectativas
Para una oración de muestra como I love the United States of America , el algoritmo debería devolver America como la cadena más larga. En cambio, está regresando United , lo cual es falso. El resto del problema se comenta en mi código a continuación.
Código
function longestWord(sentence) { //we use this index to store the index of the //longest word in the array let index = 0; //define an empty string for comparison let mystring = ""; //define a new array let arr = sentence.split(" "); //iterate through the array for (let p = 0; p < arr.length; p++) { if (arr[p].length > mystring.length) { //get the index and store in the variable index = p; } } //return the element at the index we got return arr[index]; } console.log(longestWord("I love the United States of America")); //function returns United, please helpolvidó cambiar la variable mystring valut al nuevo valor de cadena.
prueba esto :
function longestWord(sentence) { //we use this index to store the index of the //longest word in the array let index = 0; //define an empty string for comparison let mystring = ""; //define a new array let arr = sentence.split(" "); //iterate through the array for (let p = 0; p < arr.length; p++) { if (arr[p].length > mystring.length) { //get the index and store in the variable index = p; mystring=arr[index]; } } //return the element at the index we got return arr[index]; } console.log(longestWord("I love the United States of America"));