Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

151
Visualizações
¿Cómo encontrar cadenas más largas de una matriz?

Quiero encontrar cadenas más largas de esta matriz:

const myArr = ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "siete", "octavo"]

en esta matriz, "segundo", "cuarto", "octavo" tiene una longitud de 6. Quiero devolverlos en una matriz.

 const myArr = ["first", "second", "third", "fourth", "fifth", "sixth", "seven", "eighth"] function longerStrings(arr) { let largeStrings = [] let longerWord = '' for (let name of arr) { if (name.length > longerWord.length) { longerWord = name largeStrings.push(longerWord) } } return largeStrings } longerStrings(myArr)

el resultado esperado es : ["segundo","cuarto","octavo"]

pero devuelve =["primero","segundo"]

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Cuando se identifica una palabra más larga que cualquiera de las encontradas hasta ahora, debe crear una matriz completamente nueva (descartando los elementos que tenía antes) y colocar en ella la nueva palabra que establece el récord. También debe enviar un nombre a la matriz si el nombre que se itera no establece un registro, pero es igual al establecidor de registros actual.

 const myArr = ["first", "second", "third", "fourth", "fifth", "sixth", "seven", "eighth"] function longerStrings(arr) { let largeStrings = [] let longerWord = '' for (let name of arr) { if (name.length > longerWord.length) { longerWord = name largeStrings = [name]; } else if (name.length === longerWord.length) { largeStrings.push(name) } } return largeStrings } console.log(longerStrings(myArr));

about 4 years ago · Juan Pablo Isaza Relatório

0

Más fácil si usa filtro en su lugar:

 const myArr = ["first", "second", "third", "fourth", "fifth", "sixth", "seven", "eighth"] const longest = myArr.reduce((a, b) => a.length > b.length ? a : b); const res = myArr.filter(el => el.length >= longest.length) console.log(res)

Eso devuelve:

 ["second","fourth","eighth"]

O, como Sash menciona a continuación, se puede hacer en un solo paso, aunque la solución no es tan legible:

 let max = 0; const reducer = myArray.reduce((previous, current) => { if (current.length > max) { previous = []; } if (current.length >= max) { previous.push(current); max = current.length; } return previous; }, []); console.log(reducer);
about 4 years ago · Juan Pablo Isaza Relatório

0

Simplemente puede ordenar la matriz por longitud descendente y luego seleccionar solo valores que tengan la misma longitud que el primer elemento:

 const myArr = ["first", "second", "third", "fourth", "fifth", "sixth", "seven", "eighth"] const result = myArr .sort((a, b) => b.length - a.length) .filter((v, _, arr) => v.length == arr[0].length) console.log(result)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda