Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

130
Views
Estoy tratando de imprimir todas las cadenas más largas y lo que he logrado hacer es imprimir las primeras 2 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"]));

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

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"]));

about 4 years ago · Juan Pablo Isaza Report

0

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"]));

about 4 years ago · Juan Pablo Isaza Report

0

Puede hacer un par de modificaciones a su código, y funcionará:

  1. No está comprobando la longitud de longStr al comparar.
  2. Estás regresando de la primera iteración . Vuelve al final.
  3. Asigne el valor correcto, basado en su comparación de longitudes. Aquel cuya .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"]));

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!