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

418
Visualizações
¿Realizar diferentes acciones en los 3 valores principales en el Diccionario?

Tengo un diccionario ordenado con cierto número de entradas:

 dict = {B:3, A:2, C:2, D:1, E:0, F:0...}

Después de filtrar el diccionario para obtener solo las entradas con los 3 valores más altos:

 result = Object.fromEntries(Object .entries(dict) .sort(([, a], [, b]) => b - a) .filter((s => ([, v]) => s.add(v).size <= 3)(new Set)) );

El diccionario actual es

 {"B": 3, "A": 2, "C": 2, "D": 1}

Entonces, estoy tratando de agregar 4 a los valores más grandes, 2 a los segundos valores más grandes y 1 a los terceros valores más grandes, ¿cuáles son las formas de hacer esto?

El resultado esperado: {"B": 7, "A": 4, "C": 4, "D": 2}

Una de las formas en las que puedo pensar es:

 for (const key of Object.keys(result)) { // if result[key] largest //plus 4 // if result[key] second largest //plus 2 // else //plus 1 }

Gracias por leer..

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Puedes hacer esto usando Map y flatMap como:

 const dict = { B: 3, A: 2, C: 2, D: 1, E: 0, F: 0 }; const valuesToAdd = [4, 2, 1]; const result = Object.fromEntries([ ...Object.entries(dict) .sort(([, a], [, b]) => b - a) .filter( ( (s) => ([, v]) => s.add(v).size <= 3 )(new Set()) ) .reduce((map, arr) => { const [k, v] = arr; map.has(v) ? map.get(v).push(arr) : map.set(v, [arr]); return map; }, new Map()) .values(), ].flatMap((arr, i) => arr.map(([k, v]) => [k, v + valuesToAdd[i]])) ); console.log(result);

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