Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

415
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda