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

173
Visualizações
¿La matriz aparentemente está cambiando al ordenar?

Estoy escribiendo una función para encontrar las 10 palabras más comunes en una cadena. Sin embargo, cuando voy a ordenar mi arr, repite algunas de las palabras para sus valores de conteo.

 paragraph = `I love teaching. If you do not love teaching what else can you love. I love Python if you do not love something which can give you all the capabilities to develop an application what else can you love.`; const tenMostFrequentWords = (str) => { const regex = /\b[az]+\b/gi; const arr = str.match(regex); const set = new Set(); for (word of arr) { const filteredArr = arr.filter(item => item == word); set.add({word: word, count: filteredArr.length}); } const newArr = Array.from(set); newArr.sort((a,b) => b.count - a.count); return newArr; } console.log(tenMostFrequentWords(paragraph));

¿Por qué está pasando esto?

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

0

Está agregando nuevos objetos al conjunto en cada iteración de su bucle. Un Set los comparará por referencia (identidad del objeto), no por igualdad estructural , por lo que está agregando cada palabra varias veces. En su lugar, use un Map para los conteos por palabra (y no use filter para contar, eso equivale a una complejidad cuadrática):

 const tenMostFrequentWords = (str) => { const regex = /\b[az]+\b/gi; const words = str.match(regex); const counts = new Map(); for (word of words) { counts.set(word, (counts.get(word) ?? 0) + 1); } const newArr = Array.from(counts, ([word, count]) => ({word, count})); newArr.sort((a,b) => b.count - a.count); return newArr.slice(0, 10); } const paragraph = `I love teaching. If you do not love teaching what else can you love. I love Python if you do not love something which can give you all the capabilities to develop an application what else can you love.`; console.log(tenMostFrequentWords(paragraph));

about 4 years ago · Juan Pablo Isaza Relatório

0

Recorre arr y la palabra "amor" está en arr 6 veces, por lo que la agregará al conjunto 6 veces. Cree otro "arr" y cada vez que itere verifique si la palabra ya ha sido iterada.

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