let printLongestStrings =(array) =>{ let longStr = ""; for(let i = 0; i < array.length; i++){ if(array[i].length >= longStr.length){ longStr += array[i]; } } return longStr; }; console.log(printLongestStrings(["time","ticking","bomb","countup"]));1) El regreso anticipado debe estar allí. Debería devolver longStr por fin.
return longStr; 2) Debe comparar array[i].length con longStr.length no con longStr
array[i].length >= longStr.length 3) Debes asignar la cadena más grande a longStr . No deberías agregarlo en longStr .
longStr = array[i].length >= longStr.length ? array[i] : longStr; let printLongestStrings = (array) => { let longStr = ""; for (let i = 0; i < array.length; i++) { longStr = array[i].length >= longStr.length ? array[i] : longStr; } return longStr; }; console.log(printLongestStrings(["time", "ticking", "bomb", "countup"]));SOLUCIÓN ALTERNATIVA: Puede lograr el mismo resultado usando reducir
let printLongestStrings = (array) => { return array.reduce((acc, curr) => (curr.length >= acc.length ? curr : acc)); }; console.log(printLongestStrings(["time", "ticking", "bomb", "countup"]));Si quieres una matriz de la cadena de mayor longitud
let printLongestStrings = (array) => { let map = new Map(), largestLength = 0; array.forEach((s) => { if (s.length >= largestLength) { largestLength = s.length; map.has(s.length) ? map.get(s.length).push(s) : map.set(s.length, [s]); } }); return [...map.get(largestLength)]; }; console.log(printLongestStrings(["time", "ticking", "bomb", "countup"]));Estás regresando antes de haber revisado todas las cadenas
let printLongestStrings = (array) => { let longStr = ""; for (let i = 0; i < array.length; i++) { if(array[i].length >= longStr.length) longStr = array[i]; } return longStr; }; console.log(printLongestStrings(["time", "ticking", "bomb", "countup"]));Lo anterior imprimirá la última cadena más larga (es decir, si más de 1 entrada es la longitud más larga, solo generará la última)
Si quieres todas las cuerdas de esta longitud, lo siguiente funcionaría
let printLongestStrings = (array) => { let longLen = 0; let longStr = [] for (let i = 0; i < array.length; i++) { if(array[i].length == longLen){ longStr.push(array[i]) } else if(array[i].length > longLen){ longStr = []; longLen = array[i].length; longStr.push(array[i]) } } return longStr; }; console.log(printLongestStrings(["time", "ticking", "bomb", "countup"]));Puede hacer un par de modificaciones a su código, y funcionará:
longStr al comparar..length sea mayor. let printLongestStrings = (array) => { let longStr = ""; for (let i = 0; i < array.length; i++) { longStr = (array[i].length >= longStr.length) ? array[i] : longStr; } return longStr; }; console.log(printLongestStrings(["time", "ticking", "bomb", "countup"]));