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

134
Visualizações
Convierta una matriz de cadenas en hashmap con count javascript

¿Hay una mejor manera de convertir

 ["88 99", "20 99", "12 12"]

a un hashmap en la forma

 {"88": 1, "99": 2, "20": 1, "12": 1}

¿Usar mapa o reducir?

Donde en este caso, una cadena con números duplicados solo aumenta su conteo en 1.

Actualmente estoy convirtiendo la matriz anterior en una matriz 2d usando .split(' ') e iterando sobre esa matriz 2d en otro bucle for de la siguiente manera:

 var counts = {} for (let i = 0; i < logs.length; i++){ let ack = logs[i].split(' '); if(ack[0]==ack[1]){ counts[ack[0]] = counts[ack[0]] ? counts[ack[0]] + 1 : 1; } else{ for(let j= 0; j < 2; j++){ counts[ack[j]] = counts[ack[j]] ? counts[ack[j]] + 1 : 1; } } }
about 4 years ago · Santiago Gelvez
2 Respostas
Responde à pergunta

0

Primero agrupo por números, sumando las apariciones de cada uno. Esto está usando la parte de reduce . Eso es todo. Usé la adaptación del método por https://stackoverflow.com/a/62031473/3807365

 var arr = ["88 99", "20 99", "12 12"] var step1 = arr.reduce(function(agg, pair) { pair.split(" ").forEach(function(item) { agg[item] = (agg[item] || 0) + 1 }) return agg; }, {}) console.log(step1)

about 4 years ago · Santiago Gelvez Relatório

0

Sí. Supongo que desea escribir en un estilo funcional, por lo que no me preocupo por la eficiencia, etc.

Puede colapsar esto en una sola línea peluda, pero escribí los pasos intermedios y los imprimí como ilustración.

 const input = ["88 99", "20 99", "12 12"]; const split = input.map( (string) => string.split(" ") ); console.log("split: " + JSON.stringify(split)); const flattened = split.reduce( (acc,array) => acc = acc.concat(array), []); console.log("flattened: " + JSON.stringify(flattened)); const output = flattened.reduce( (byKey, item) => { if (!byKey[item]) byKey[item] = 0; byKey[item]++; return byKey; }, {}); console.log(JSON.stringify(output))

about 4 years ago · Santiago Gelvez 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