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

211
Visualizações
cuente cada valor duplicado en el objeto y aumente

Estoy luchando con seguir la lógica.

Estoy creando la siguiente matriz de objetos al ejecutar una cadena dada.

 [{"word":"Frank","c":1}, {"word":"Irina","c":1}, {"word":"Frank","c":1}, {"word":"Frank","c":1}, {"word":"Thomas","c":1}]

lo que quiero lograr es:

 [{"word":"Frank","c":3}, {"word":"Irina","c":1}, {"word":"Thomas","c":1}]

¿Cuál sería la mejor manera aquí?

Estoy enviando la cadena a esta función y creando la matriz. pero no soy capaz de conseguir lo que quiero.

 function words(str) { return str.split(" ").reduce(function(count, word) { if(word.length>2&&isLetter(word)){ data.push({word:word, count: 1}); } }, {}); }

gracias por la ayuda adrian

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

0

Puede usar el acumulador de objetos para llevar la cuenta de cada palabra y luego usar Object.values() para obtener todos los valores.

 function words(str) { return Object.values(str.split(" ").reduce((result, word) => { result[word] ??= {word, count: 0}; result[word].count += 1; return result; }, {})); } console.log(words("Frank Irina Frank Frank Thomas"));
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

Suponiendo que c no siempre es 1 (en cuyo caso puede hacer lo que sugirió la otra publicación y simplemente llevar la cuenta de las palabras), puede hacerlo así, recorriendo los datos y sumando los valores de c en un búfer, usando word como clave para el búfer. Luego asigne los valores del búfer a una matriz final.

 const data = [{"word":"Frank","c":1}, {"word":"Irina","c":1}, {"word":"Frank","c":1}, {"word":"Frank","c":1}, {"word":"Thomas","c":1}]; //console.log(data); let buffer = {}; data.forEach(i=>{ let w = i.word; let words = buffer[w] || {word: w, c: 0}; words.c = ic*1 + words.c; buffer[w] = words; }); let final = Object.values(buffer).map(b=>{ return {word: b.word, c: bc}; }); console.log(final);

Esto funcionará para cualquier valor de c:

 const data = [{"word":"Frank","c":2}, {"word":"Irina","c":4}, {"word":"Frank","c":1}, {"word":"Frank","c":3}, {"word":"Thomas","c":1}]; //console.log(data); let buffer = {}; data.forEach(i=>{ let w = i.word; let words = buffer[w] || {word: w, c: 0}; words.c = ic*1 + words.c; buffer[w] = words; }); let final = Object.values(buffer).map(b=>{ return {word: b.word, c: bc}; }); console.log(final);

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